我想尽快用 C++ 扫描 FAT32 磁盘(我只需要文件路径和文件名),扫描 FAT32 磁盘上的每个文件。有没有 API 可以做到这一点?
问问题
1513 次
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 回答