[update] Dateigröße aus Verzeichnis ermitteln
-
Hab mir mal diesen Code Schnipsel angeschaut:
HANDLE fHandle; WIN32_FIND_DATA wfd; fHandle=FindFirstFile("C:\\*",&wfd); do { // Eintrag nur behandeln, wenn es nicht . oder .. ist (werden nur bei Unterverzeichnissen mit zurückgeliefert) // hier könnte man z.B. auch mit lstrcmp auf . und .. vergleichen, was allerdings nicht ganz so effizient ist if (!( (wfd.cFileName[0]=='.') && ( (wfd.cFileName[1]=='.' && wfd.cFileName[2]==0) || wfd.cFileName[1]==0 ) )) { if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { MessageBox(0,wfd.cFileName,"Folgendes Verzeichnis wurde gefunden:",0); // Datei ist keine, sondern ein Verzeichnis... // Hier könnte man dasselbe nochmal machen, um auch die // Unterverzeichnisse zu scannen ;-) } else { MessageBox(0,wfd.cFileName,"Folgende Datei gefunden:",0); } } } while (FindNextFile(fHandle,&wfd)); FindClose(fHandle);Wie kann ich die Größe der Dateien ermitteln, z.B. tes.doc = 23 KB
-
habs damit versucht:
string datei = wfd.cFileName; std::ifstream file(datei.c_str()); file.seekg(0,std::ios::end);bekomme immer eine -1

-
Du musst dir wieder den Pfad zusammensetzen, dann kannst du z.B. CreateFile/GetFileSize verwenden

-
hola
in der WIN32_FIND_DATA struktur ist doch die dateigroesse schon drinnen. oder hab ich da die fragestellung falsch verstanden ?
Meep Meep
-
Könnt ihr mir bitte ein Beispiel zeigen, den Code hab ich aus der FAQ
-
Meep Meep schrieb:
hola
in der WIN32_FIND_DATA struktur ist doch die dateigroesse schon drinnen. oder hab ich da die fragestellung falsch verstanden ?
Meep Meep
LOL das hab ich mir auch gedacht als ich den Thread durchlase.

Kernel64 :
DWORD nFileSizeHigh;
DWORD nFileSizeLow;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/win32_find_data_str.asp