高效率擷取多種類型檔案
Directory.GetFiles()
方法雖然看似簡單,但並不直接支援多種文件類型過濾器。 然而,有幾種有效的策略可以克服這個限制。
對於 .NET 4.0 及更高版本,EnumerateFiles()
方法使用 LINQ 的 Where()
子句提供了更好的解決方案:
<code class="language-csharp">var files = Directory.EnumerateFiles("C:\path", "*.*", SearchOption.AllDirectories) .Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));</code>
這可以根據指定的副檔名優雅地過濾枚舉檔案。
對於較舊的 .NET 版本,可以使用類似的方法:
<code class="language-csharp">var files = Directory.GetFiles("C:\path", "*.*", SearchOption.AllDirectories) .Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));</code>
但是,重要的是要記住 GetFiles()
傳回記憶體中的完整陣列。 這可能會導致效能問題和高記憶體消耗,尤其是在處理大量目錄時。 因此,強烈建議使用 EnumerateFiles()
以獲得最佳效率。
以上是如何使用Directory.getFiles()或EnumerateFiles()檢索多個文件類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!