我想在C ++中尽快扫描FAT32磁盘(我只需要文件路径和文件名), 扫描FAT32磁盘上的每个文件。 有没有API可以做到这一点?
答案 0 :(得分:1)
检查此主题:How can I quickly enumerate directories on Win32?
它实际上描述了FindFirstFile / FindNextFile,但是如果你需要它更快,你应该去内核。
然而,线程中描述的索引解决方案对FAT32系统不起作用 - credit MSalters
答案 1 :(得分:0)
术语“扫描”的定义不是很明确。您想读取每个文件的每个字节吗?最简单的方法是使用目录列表。首先按下根目录。然后,只要目录列表不为空,请调用FindFirstFile/FindNextFile
枚举所有文件和子目录。将子目录添加到目录列表,并读取您遇到的文件。
更新:出于您的目的,FindFirstFileEx(FindExInfoBasic)
就足够了。您仍然希望一次只处理一个目录(广度优先),而不是一看到它们就进入子目录(深度优先)。这更快,因为单个目录中的FAT32目录条目一起存储,但子目录通常不存储在父目录附近。