Wyszukiwanie wielu plików po nazwie.

0

Ta funkcja wypisuje mi wszystkie pliku z folderu:

struct dirent *plik;
    DIR *sciezka;

    if((sciezka=opendir(nazwa_sciezki)))
    {
        while((plik=readdir(sciezka)))  cout<<plik->d_name<<endl;
        closedir(sciezka);
    }
    else cout<<"! wywołując funkcję opendir pojawił się błąd otwarcia strumienia dla danej ścieżki, może nie istnieje, lub podano ścieżkę pustą"<<endl; 

Lecz nie moge jej przerobić by wyszukiwało mi pliku *.txt. Prowałem dodać do liniki, while((plik=readdir(sciezka))) jakiś warunek ale nie działa.

0

Przed wypisaniem dodaj sprawdzenie czy plik->d_name się kończy na .txt

0

no if(plik->d_name=="*.txt") cout<<plik->d_name<<endl nie działa XD

1
int len = strlen(plik->d_name);
if (len >= 4 && !strcmp(&plik->d_name[len - 4], ".txt"))

Natomiast w XXI wieku takie rzeczy robi się tak:

std::regex txt_file(R"(^.*\.txt$)");
if(std::regex_match(plik->d_name, txt_file))
1

czemu z polecenia dir nie skorzystasz tylko swoją apkę od razu piszesz? Jak już chcesz sam pisać apkę to w C# będzie łatwiej bo masz gotowce porobione

0

Ok, zgodnie z radą @krwq użyłem dir'a do tego :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1