none
大目錄之檔案列表 RRS feed

  • 問題

  • 若要獲取目錄中的所有檔案來處理,通常是用System.IO.Directory.GetFileSystemEntries或System.IO.Directory.GetFiles,再迴圈針對個別檔案動手。

    但其回傳值為string[],如果該目錄中有超多檔案(上萬個?或更多),此方法顯然嚴重影響效能…

    請問有什麼方法能類似指針那樣,先指在該目錄中的第一個檔案,再循序往下移動呢?(而非一次就撈出全部檔名)

    另外附帶一問,第二參數(searchPattern),如果同時要找好幾種副檔名,該怎麼做呢?(試過用*.txt,*.exe沒辦法)

    2007年1月13日 上午 08:43

解答

  • 如果你想要用指針的方法,你可以考慮使用 Win32 API 的 FindFirstFile() 和 FindNextFile() 來實作。
    Directory.GetFiles() 只是簡化這層實作而已,如果是在本機上,其實效能也不會差太多。

    第二個問題,你大概只有多下幾次吧。因為 MSDN 沒有說名 GetFiles() 支援多重副檔名。

    2007年1月13日 上午 09:34
    版主