如何在Windows中提取目录属性?

时间:2011-10-25 17:55:18

标签: c++ c windows file winapi

是否有任何函数返回目录中的文件数量?

是迭代所有文件的唯一方法吗?

(例如,当您右键单击Windows中的目录时,它会列出:7 files in directory。有没有办法提取该信息?,“它”如何获取该信息?)

感谢。

2 个答案:

答案 0 :(得分:4)

我不知道是否有更好的方法,但我使用FindFirstFile / FindNextFile来执行此操作(为清晰起见,删除了一些错误检查):

WIN32_FIND_DATA ffd;
HANDLE hFind = INVALID_HANDLE_VALUE;
_TCHAR szDir[] = _T("somedir\\*");

hFind = FindFirstFile(szDir, &ffd);

do
{
    if((ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && !(!_tcscmp(ffd.cFileName,_T(".")) || !_tcscmp(ffd.cFileName, _T(".."))))
    {
        // This is a directory
    }
}
while (FindNextFile(hFind, &ffd) != 0);

答案 1 :(得分:1)

您可以使用FindFirstFile / FindNextFile Win32 API函数来遍历目录中的文件并计算其中的文件数量。在目录级别没有单一的统计信息。

Windows资源管理器在最低级别执行类似操作。