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