use*_*747 6 c++ algorithm winapi file
请参阅编辑,并提供迄今为止的建议......
我试图使用WinAPI和C++列出给定目录中的所有目录(文件夹).
现在我的算法速度慢且效率低:
- 使用FindFirstFileEx()打开我正在搜索的文件夹
- 然后查看目录中的每个文件(使用FindNextFile()); 如果它是一个目录文件,那么我将其绝对路径存储在一个向量中,如果它只是一个文件我什么也不做.
这看起来非常低效,因为我正在查看目录中的每个文件.
编辑: 所以在采取了我使用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 );
}
Run Code Online (Sandbox Code Playgroud)
如果您使用FindFirstFileEx
,那么您应该能够指定_FINDEX_SEARCH_OPS::FindExSearchLimitToDirectories
选项(用作fSearchOp
中的参数FindFirstFileEx
)来限制对目录的第一次搜索(以及任何后续FindNextFile()
)调用。
归档时间: |
|
查看次数: |
2986 次 |
最近记录: |