首頁 >後端開發 >C++ >如何有效地使用Directory.getFiles()檢索多種文件類型?

如何有效地使用Directory.getFiles()檢索多種文件類型?

Barbara Streisand
Barbara Streisand原創
2025-01-26 19:11:09839瀏覽

How Can I Efficiently Use Directory.GetFiles() to Retrieve Multiple File Types?

使用Directory.getFiles()

需要有效地從目錄中檢索不同類型的文件嗎? Directory.GetFiles()是一個方便的工具,但是在處理多個文件擴展程序時,它具有限制。 使用“ |”時或者 ”;”由於搜索模式中的分界符不起作用,因此有有效的解決方法。

> .net 4.0及以上的

解決方案 >為了在新的.NET版本中提供最佳性能,Leverage

與Linq結合:

Directory.EnumerateFiles()

此方法首先迭代地檢索所有文件(與一次加載所有文件相比,提高性能),然後使用lambda表達式過濾結果,以僅保留
<code class="language-csharp">var files = Directory.EnumerateFiles("C:\path", "*.*", SearchOption.AllDirectories)
    .Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));</code>
>和

> files。 .mp3.jpg>較舊的.net版本的解決方案

如果您正在使用較舊的.NET版本,則可以使用>:

>調整解決方案

Directory.GetFiles()這最初加載所有文件,然後應用相同的linq濾波器。 >

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

與高度優化的自定義解決方案相比, > 雖然方便,但可能會在極大的目錄中引入輕微的性能開銷。 對於關鍵績效應用,手動迭代可能是可取的。

>
    >
  • 路徑語法:始終將您的目錄路徑包裹在雙引號(“ C:PATH”)中以避免錯誤。 這種精緻的方法為使用.NET Framework版本的不同,為使用Directory.EnumerateFiles()或更有效的對應物檢索多種文件類型提供了一個清晰有效的解決方案。 >

以上是如何有效地使用Directory.getFiles()檢索多種文件類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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