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

È stato utile?

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
scroll top