哪种扫描FAT32磁盘中的文件最快?

时间:2010-03-30 06:18:04

标签: c++ windows disk fat32

我想在C ++中尽快扫描FAT32磁盘(我只需要文件路径和文件名), 扫描FAT32磁盘上的每个文件。 有没有API可以做到这一点?

2 个答案:

答案 0 :(得分:1)

检查此主题:How can I quickly enumerate directories on Win32?

它实际上描述了FindFirstFile / FindNextFile,但是如果你需要它更快,你应该去内核。
然而,线程中描述的索引解决方案对FAT32系统不起作用 - credit MSalters

答案 1 :(得分:0)

术语“扫描”的定义不是很明确。您想读取每个文件的每个字节吗?最简单的方法是使用目录列表。首先按下根目录。然后,只要目录列表不为空,请调用FindFirstFile/FindNextFile枚举所有文件和子目录。将子目录添加到目录列表,并读取您遇到的文件。

更新:出于您的目的,FindFirstFileEx(FindExInfoBasic)就足够了。您仍然希望一次只处理一个目录(广度优先),而不是一看到它们就进入子目录(深度优先)。这更快,因为单个目录中的FAT32目录条目一起存储,但子目录通常不存储在父目录附近。