0

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

4

2 回答 2

1

检查这个线程:如何快速枚举 Win32 上的目录?

它实际上描述了 FindFirstFile/FindNextFile,但如果您需要更快地使用它,您应该使用 Kernel。
然而,线程中描述的索引解决方案不适用于 FAT32 系统 -归功于 MSalters

于 2010-03-30T07:23:54.810 回答
0

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

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

于 2010-03-30T07:02:20.333 回答