如何通过Windows本机API获取目录信息?

时间:2010-03-03 12:34:21

标签: windows winapi kernel32

我可以使用以下代码获取文件的创建日期,文件大小等:

// 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 个答案:

答案 0 :(得分:8)

一旦你必须传递这个标志来获取目录的有效句柄,我就遇到了类似的东西。来自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 |您必须设置此标志以获取目录的句柄。目录句柄可以传递给某些函数而不是文件句柄。有关详细信息,请参阅“备注”部分。