【发布时间】:2011-11-09 15:29:33
【问题描述】:
请参阅目前为止所采取的建议编辑...
我正在尝试使用 WinAPI 和 C++ 列出给定目录中的所有目录(文件夹)。
现在我的算法速度慢且效率低:
- 使用 FindFirstFileEx() 打开我正在搜索的文件夹
- 然后我查看目录中的每个文件(使用 FindNextFile());如果它是一个目录文件,那么我将它的绝对路径存储在一个向量中,如果它只是一个文件,我什么也不做。
这似乎效率极低,因为我正在查看目录中的每个文件。
- 是否有我可以使用的 WinAPI 函数来告诉我给定目录中的所有子目录?
- 您知道我可以使用一种算法来有效地定位和识别目录(文件夹)中的文件夹吗?
编辑: 因此,在接受了我使用 FindExSearchLimitToDirectories 搜索的建议后,但对我来说,它仍然会打印出所有文件(.txt 等)而不仅仅是文件夹。我做错了吗?
WIN32_FIND_DATA dirData;
HANDLE dir = FindFirstFileEx( "c:/users/soribo/desktop\\*", FindExInfoStandard, &dirData,
FindExSearchLimitToDirectories, NULL, 0 );
while ( FindNextFile( dir, &dirData ) != 0 )
{
printf( "FileName: %s\n", dirData.cFileName );
}
【问题讨论】: