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

C++ 如何在Windows中提取目录属性?,c++,c,windows,file,winapi,C++,C,Windows,File,Winapi,是否有函数返回一个目录中有多少个文件 是遍历所有文件的唯一方法吗 (例如,当您右键单击windows中的目录时,它会列出:7个目录文件。是否有方法提取该信息?“it”如何获取该信息?) 谢谢。您可以使用FindFirstFile/FindNextFileWin32 API函数遍历目录中的文件并计算有多少文件。没有在目录级别维护的单一统计信息 Windows资源管理器在最低级别执行类似操作。我不知道是否有更好的方法,但我使用FindFirstFile/FindNextFile来执行此操作(为了清楚

是否有函数返回一个目录中有多少个文件

是遍历所有文件的唯一方法吗

(例如,当您右键单击windows中的目录时,它会列出:
7个目录文件
。是否有方法提取该信息?“it”如何获取该信息?)


谢谢。

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


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

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


目录类可能是Helt@ WebIIK:如果他使用.NET语言,它可能会,但是根据标签,他询问C和C++都不是(显然是C++和C++ + CLI之间的混淆的另一种情况,这几乎是,但不是完全,不像C++)。链接页面中微软标签为“C++”的应用程序适用于C++ + CLI,而不是C++。刚刚注意到“托管c++”有一个seroperate标记
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);