Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wyświetlanie wszystkich folderów w danym folderze

Ostatnio zmodyfikowano 2014-11-01 19:25
Autor Wiadomość
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
P-119810
czosnek17
» 2014-11-01 18:16:41
P-119819
1aam2am1
» 2014-11-01 19:25:26
Funkcja którą kiedyś napisałem.

cos.h

C/C++
#ifdef _WIN32
#include <io.h>
#endif // _WIN32
#ifdef __linux__
#include <sys/dir.h>
#endif // __linux__

namespace plik
{
    std::string dir( std::string gdzie );
}

cos.cpp

C/C++
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 // _WIN32
    #ifdef __linux__
   
    std::string dir( std::string gdzie )
    {
        DIR * dir;
        dirent * drnt;
        std::string result = "";
       
        if( gdzie.empty() == 1 ) { gdzie = "."; }
        //if(gdzie.back() != '/'){gdzie += "/";}
        //if(gdzie.back() == '/'){gdzie += "*";}
       
        if(( dir = opendir( gdzie ) ) != NULL ) //otwieram folder
        {
            drnt = readdir( dir ); //czytam 1
           
            while( drnt != NULL )
            {
                result += drnt->d_name; //czytam nazwe
                if(( drnt = readdir( dir ) ) != NULL ) { result += '\n'; }
            }
           
            closedir( dir ); //zamykam folder
        }
        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 // __linux__
}
P-119823
« 1 »
  Strona 1 z 1