Wyświetlanie wszystkich folderów w danym folderze
Ostatnio zmodyfikowano 2014-11-01 19:25
treekt Temat założony przez niniejszego użytkownika |
Wyświetlanie wszystkich folderów w danym folderze » 2014-11-01 16:45:11 Czy jest jakaś możliwość wyszukania wszystkich folderów danym folderze (ściezce) i zapisanie ich do zmiennej string. Bez względu na to jak takie foldery będą sie nazywały |
|
czosnek17 |
» 2014-11-01 18:16:41 |
|
1aam2am1 |
» 2014-11-01 19:25:26 Funkcja którą kiedyś napisałem. cos.h #ifdef _WIN32 #include <io.h> #endif #ifdef __linux__ #include <sys/dir.h> #endif
namespace plik { std::string dir( std::string gdzie ); }
cos.cpp namespace plik { #ifdef _WIN32 std::string dir( std::string gdzie ) { _finddata_t data; std::string result = ""; if( gdzie.back() != '/' ) { gdzie += "/"; } if( gdzie.back() == '/' ) { gdzie += "*"; } long handle = _findfirst( gdzie.c_str(), & data ); if( handle == - 1 ) return result; result += data.name; int find = _findnext( handle, & data ); while( find != - 1 ) { result += '\n'; result += data.name; find = _findnext( handle, & data ); } _findclose( handle ); return result; } #endif #ifdef __linux__ std::string dir( std::string gdzie ) { DIR * dir; dirent * drnt; std::string result = ""; if( gdzie.empty() == 1 ) { gdzie = "."; } if(( dir = opendir( gdzie ) ) != NULL ) { drnt = readdir( dir ); while( drnt != NULL ) { result += drnt->d_name; if(( drnt = readdir( dir ) ) != NULL ) { result += '\n'; } } closedir( dir ); } else { switch( errno ) { case DT_UNKNOWN: std::cout << "Nieznany typ, nie wszystkie systemy rozróżniaja typy, czesto jest zwracana ta wartosc" << '\n'; case DT_REG: std::cout << "Regularny plik" << '\n'; case DT_DIR: std::cout << "Katalog" << '\n'; case DT_FIFO: std::cout << "Potok nazwany" << '\n'; case DT_SOCK: std::cout << "Lokalne gniazdo" << '\n'; case DT_CHR: std::cout << "Urządzenie znakowe 'A character device'" << '\n'; case DT_BLK: std::cout << "Urzadzenie blokowe 'A block device'" << '\n'; case DT_LNK: std::cout << "Dowiazanie symboliczne" << '\n'; }; } return result; } #endif }
|
|
« 1 » |