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

Mal*_*ker 3 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)); 
Run Code Online (Sandbox Code Playgroud)

但是当针对目录调用时,所有值都设置为零 - 如何获取目录信息?

谢谢

rer*_*run 8

一旦你必须传递这个标志来获得目录的有效句柄,我就遇到了类似的东西.从MSDN文档.

试试这个

HANDLE hFile = CreateFile(path, GENERIC_READ, FILE_SHARE_READ, 
         NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL|FILE_FLAG_BACKUP_SEMANTICS, NULL); 
Run Code Online (Sandbox Code Playgroud)

FILE_FLAG_BACKUP_SEMANTICS| 您必须设置此标志以获取目录的句柄.目录句柄可以传递给某些函数而不是文件句柄.有关更多信息,请参阅"备注"部分.