首頁 >後端開發 >C++ >如何使用Directory.getFiles()或EnumerateFiles()檢索多個文件類型?

如何使用Directory.getFiles()或EnumerateFiles()檢索多個文件類型?

DDD
DDD原創
2025-01-26 19:21:10629瀏覽

How Can I Retrieve Multiple File Types Using Directory.GetFiles() or EnumerateFiles()?

高效率擷取多種類型檔案

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn