Frage

Ich kann das Erstellungsdatum bekommen, Dateigröße usw. für eine Datei mit dem folgenden Code:

// Error handling removed for brevity 
HANDLE hFile = CreateFile(path, GENERIC_READ, FILE_SHARE_READ, 
             NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); 

LARGE_INTEGER fileSize; 
GetFileSizeEx(hFile, &fileSize); 

FILE_BASIC_INFO fileInfo); 
GetFileInformationByHandle(hFile, FileBasicInfo, fileInfo, sizeof(fileInfo)); 

Aber wenn gegen ein Verzeichnis mit dem Namen, werden alle Werte auf Null gesetzt - wie bekomme ich Verzeichnis Informationen?

Danke

War es hilfreich?

Lösung

Ich lief in etwa so aus, sobald Sie diese Flagge passieren müssen ein gültiges Handle für ein Verzeichnis zu erhalten. Aus MSDN Dokumentation.

Versuchen Sie, diese

HANDLE hFile = CreateFile(path, GENERIC_READ, FILE_SHARE_READ, 
         NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL|FILE_FLAG_BACKUP_SEMANTICS, NULL); 

FILE_FLAG_BACKUP_SEMANTICS | Sie müssen diesen Flag gesetzt mit einem Griff in ein Verzeichnis zu erhalten. Ein Verzeichnis-Handle kann auf einige Funktionen übergeben werden, statt einer Datei-Handle. Weitere Informationen finden Sie im Abschnitt Bemerkungen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top