首頁 >後端開發 >C++ >Directory.getFiles()可以處理多個文件類型過濾器嗎?

Directory.getFiles()可以處理多個文件類型過濾器嗎?

Susan Sarandon
Susan Sarandon原創
2025-01-26 19:26:09967瀏覽

Can Directory.GetFiles() Handle Multiple File Type Filters?

使用Directory.getFiles()

使用多個檔案類型篩選器

挑戰:

>使用Directory.GetFiles()檢索各種類型的文件,提出了一個常見的程式設計障礙。 此方法本身不直接支援多個文件類型過濾器。

>無效的方法: 這樣的嘗試無法產生預期的結果:

>解:
<code class="language-csharp">Directory.GetFiles("C:\path", "*.mp3|*.jpg", SearchOption.AllDirectories);
Directory.GetFiles("C:\path", "*.mp3;*.jpg", SearchOption.AllDirectories);</code>
.net 4.0及以後的

用於較舊的.NET版本:類似的基於LINQ的方法有效地工作:

<code class="language-csharp">var files = Directory.EnumerateFiles("C:\path", "*.*", SearchOption.AllDirectories)
                     .Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));</code>

對效能和記憶體進行最佳化:

>處理大量文件時,效能和記憶體使用量變得至關重要。 如Christian.K所指出的那樣,
<code class="language-csharp">var files = Directory.GetFiles("C:\path", "*.*", SearchOption.AllDirectories)
                     .Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));</code>
的方法可能是記憶密集的。 Paul Farry強烈建議使用

的建議,以便更好地進行記憶體管理:

以上是Directory.getFiles()可以處理多個文件類型過濾器嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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