gpt4 book ai didi

c++ - 在目录树中查找文件的最快方法是什么

转载 作者:可可西里 更新时间:2023-11-01 11:14:13 30 4
gpt4 key购买 nike

我有一个类似于下面的目录树。它总共包含大约 30,000 个文件。

rootDir
rootDir\subDir1
rootDir\subDir1\subSubDir1
rootDir\subDir1\subSubDir2
rootDir\subDir2
rootDir\subDir2\subSubDir1
rootDir\subDir3
...
rootDir\subDirN

在 Windows 上使用 C++ 根据文件名从目录结构(例如上面的文件)中查找文件的最快方法是什么?

最佳答案

如果你有 Windows Desktop SearchWindows Search操作(或者目标计算机可能有它,反正),你可以使用ISearchFolderItemFactory (或 ISearchDesktop,对于 WDS)让它为您搜索。

如果没有预先存在的索引,几乎唯一的方法是使用 FirstFirstFile , FindnextFileFindClose .不过,我通常反对明显的递归搜索方法——广度优先搜索通常至少同样快,并且根据情况,可以很容易地快两倍。

要进行广度优先搜索,您需要维护一个您尚未搜索过的子目录的集合(我通常使用优先级队列,但普通队列、堆栈等也可以)。您可以通过将起始目录输入到集合中来开始搜索,然后让您的搜索功能执行此操作。您的搜索循环运行,继续搜索直到集合为空。当遇到目录时,它会将其添加到集合中。

关于c++ - 在目录树中查找文件的最快方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7531882/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com