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

Ilość plików danego rozszerzenia w folderze - WinApi.

Ostatnio zmodyfikowano 2023-03-14 10:37
Autor Wiadomość
befejak
Temat założony przez niniejszego użytkownika
Ilość plików danego rozszerzenia w folderze - WinApi.
» 2023-03-12 01:15:08
Witam,
 Przeleciałem przez całe: https://learn.microsoft.com/en-us/windows/win32/api/fileapi/
 Ale nigdzie nie znalazłem żadnej funkcji która zwracałaby ilość plików danego rozszerzenia.

Powiedzmy że chcę znaleźć wszystkie pliki .txt w danym folderze, obecnie posiadam:

 WIN32_FIND_DATA qData;
 HANDLE qFile = FindFirstFileA( "*.txt", &qData );
 
 qlString FileName = qData.cFileName;
 
 cout<<"File: "<<FileName<<endl<<endl;
 
 while( FindNextFileA( qFile, &qData ) != 0 ){
  cout<<"Found another file: "<<qData.cFileName<<endl;
 }

Niby mógłbym w pętli while zliczać ilość plików ale wydaje mi się że Windows powinien mieć jakąś
 Funkcję do uzyskania ilości plików danego rozszerzenia z folderu?...

Chciałbym wyświetlić wszystkie pliki txt w konsoli, a następnie za pomocą strzałek w górę / dół wybrać plik z listy.
 Wybrany plik z listy zostanie otwarty i 3 jego pierwsze linie wypisane na ekranie.

Najwygodniej by dla mnie było jakbym miał informację od Windows-a ile jest plików abym mógł po prostu zrobić:
 File = new FileStruct[ FilesAmount ];

//Edit:
 Przy okazji, Windows mówi o tz. "Wildcard" jako przykłady wymienia "*" oraz "?"
 * wiem co znaczy w nazwie pliku, ale co znaczy "?" pomimo że podali "?" to nigdzie nie opisali co oznacza to w nazwie pliku.
P-180051
pekfos
» 2023-03-12 15:36:17
Niby mógłbym w pętli while zliczać ilość plików ale wydaje mi się że Windows powinien mieć jakąś
 Funkcję do uzyskania ilości plików danego rozszerzenia z folderu?...
I skąd twoim zdaniem Windows będzie znać odpowiedź na to pytanie, jak nie licząc te pliki samemu? Bardzo wątpliwe żeby była funkcja na coś co można prosto zrobić już istniejącymi.

Najwygodniej by dla mnie było jakbym miał informację od Windows-a ile jest plików abym mógł po prostu zrobić:
 File = new FileStruct[ FilesAmount ];
Po prostu użyj std::vector<> i dodawaj pliki w miarę jak je znajdujesz.

 Przy okazji, Windows mówi o tz. "Wildcard" jako przykłady wymienia "*" oraz "?"
 * wiem co znaczy w nazwie pliku, ale co znaczy "?" pomimo że podali "?" to nigdzie nie opisali co oznacza to w nazwie pliku.
https://learn.microsoft.com/en-us/previous-versions/windows/desktop/indexsrv/ms-dos-and-windows-wildcard-characters
P-180052
befejak
Temat założony przez niniejszego użytkownika
» 2023-03-12 16:25:53
W sumie to sam uświadomiłem sobie że moje pytanie było głupie,
 nawet jak wybierze się folder i kliknie "właściwości" to dla dużych folderów Windows nie pokazuje od razu ilości i rozmiaru plików w folderze tylko liczy ich ilość i rozmiar w czasie rzeczywistym. Więc po tym mógłbym zgadnąć że nie ma nigdzie takich informacji zapisanych jak ilość plików danego typu :/...

Przynajmniej nauczyłem się co oznacza "?" i myślę że może być to bardzo przydatne.

No nic, użyję więc std::vector i będę dodawać pliki w miarę ich znajdowania.
P-180053
onlinecricketid
» 2023-03-14 10:37:53
Post usunięty przez moderatora
P-180054
« 1 »
  Strona 1 z 1