2010-03-30 58 views

回答

1

檢查這個線程:How can I quickly enumerate directories on Win32?

實際上,它描述了用FindFirstFile/FindNextFile,但如果你需要更快,你應該去核。
在線程中所描述的指數解決方案將然而不是FAT32系統的工作 - 信用MSalters

+0

注意的是,指數在解決你的線程暗示假定NTFS chnage期刊;本主題中的FAT32不包括該選項。 – MSalters 2010-03-30 13:42:04

+0

謝謝MSalters。我改變了我的答案,包括這一點。雖然,我發佈這個主要原因是檢查另一個線程:) – Default 2010-03-30 14:27:01

0

術語「掃描」沒有很好的定義。你想閱讀每個文件的每個字節嗎?最簡單的方法是使用目錄列表。首先推動根目錄。然後,只要目錄列表不爲空,請致電FindFirstFile/FindNextFile來枚舉所有文件和子目錄。將子目錄添加到目錄列表中,並讀取遇到的文件。

更新:爲您的目的,FindFirstFileEx(FindExInfoBasic)就足夠了。您仍然希望一次只處理一個目錄(寬度優先),而不是一看到它們就進入子目錄(深度優先)。這樣更快,因爲單個目錄中的FAT32目錄條目一起存儲,但子目錄通常不會存儲在父目錄旁邊。