Come ottenere informazioni Directory tramite API native di Windows?
Domanda
posso ottenere la data di creazione, dimensione del file ecc per un file utilizzando il seguente codice:
// 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));
Ma quando viene chiamato contro una directory, tutti i valori sono impostati a zero - come ottengo informazioni directory?
Grazie
Soluzione
Mi sono imbattuto in qualcosa di simile, una volta che si deve passare questo flag per ottenere un handle valido per una directory. Dalla documentazione MSDN .
Prova questo
HANDLE hFile = CreateFile(path, GENERIC_READ, FILE_SHARE_READ,
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL|FILE_FLAG_BACKUP_SEMANTICS, NULL);
FILE_FLAG_BACKUP_SEMANTICS
| È necessario impostare questo flag per ottenere un handle a una directory. Una maniglia directory può essere passato ad alcune funzioni, invece di un handle di file. Per ulteriori informazioni, vedere la sezione Osservazioni.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow