Как получить информацию о Справочнике через Windows API? - PullRequest
3 голосов
/ 03 марта 2010

Я могу получить дату создания, размер файла и т. Д. Для файла , используя следующий код:

// 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)); 

Но при вызове для каталога все значения обнуляются - как мне получить информацию о каталоге?

Спасибо

1 Ответ

8 голосов
/ 03 марта 2010

Я столкнулся с чем-то подобным, когда вам пришлось передать этот флаг, чтобы получить действительный дескриптор для каталога. Из документации MSDN .

попробуйте это

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

FILE_FLAG_BACKUP_SEMANTICS | Вы должны установить этот флаг, чтобы получить указатель на каталог. Дескриптор каталога может быть передан некоторым функциям вместо дескриптора файла. Для получения дополнительной информации см. Раздел «Примечания».

...