Как в c++ рекурсивно напечатать названия всех файлов в директории, переданной параметром программе? Например, для следующей структуры
--project
---src
----main.cpp
---include
----stdafx.h
---debug
----main
---Makefile
надо, чтобы вызов debug/main .
печатал названия всех файлов проекта.
Только Linux (если понравится):
// g++ -Wall -Wpedantic writedir.cpp
# include <errno.h>
# include <sys/types.h>
# include <dirent.h>
# include <iostream>
# include <string.h>
void showdir(char const * dirname,int depth){
errno = 0 ;
DIR * dir = opendir(dirname);
if(errno) return;
struct dirent * result;
do{
result = readdir(dir);
if(not result) break;
for(int i=depth;i>0;){--i;std::cout<<"-";}
std::cout<<result->d_name<<"\n";
if( (strcmp(result->d_name,".") not_eq 0) and
(strcmp(result->d_name,"..") not_eq 0))
showdir(result->d_name,depth+1);
}while(true);
closedir(dir);}
int main(){
showdir(".",0);
return 0;}
Имея под боком std::filesystem
из C++17 проблема по сути решается одним единственным циклом с recursive_directory_iterator
:
for(auto& p: fs::recursive_directory_iterator("project"))
std::cout << p << '\n';
Для проверки см. тут.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Сегодня я узнал о существовании функции atexitЧитая мануалы б ней, не могу понять, насколько практически необходимо использовать эту функцию,...
Не могли бы, пожалуйста, подсказать, как правильно вызвать (если это возможно) метод из одной активности в другой? Я прочитал за наследование,...
Условия: Имеется приложение с Activity и тремя fragment'ами, которые можно листать смахивая влево - вправо как страницы (Этот эффект осуществляется...
Хотелось бы создать приложение которое вытащит пароли с Google Chrome которые лежат тут C:\Users\elnur\AppData\Local\Google\Chrome\User Data\Default