directory.getfiles()
で複数のファイルタイプを効率的に取得しますDirectory.GetFiles()
メソッドは、ディレクトリ内のファイルをリストするための便利なツールです。 ただし、組み込みのフィルタリングは、一度に1つのファイルタイプのみを可能にします。 この記事では、この制限を克服し、単一の操作で複数の基準に一致するファイルを取得するためのソリューションを調査します。
課題:複数のファイルタイプフィルタリング
Directory.GetFiles()
ソリューション:
この制限をバイパスする2つの効果的な方法:
1。レバレッジ
(.NET 4.0以降):
Directory.EnumerateFiles()
特に多数のファイルを扱う場合、よりメモリ効率の高いアプローチを提供します。ファイルをすべてメモリにロードすることなく、ファイルを一度にロードすることなく繰り返します。 その後、LINQ:
このコードスニペットは、すべてのファイルを「C:PATH」(およびそのサブディレクトリ)のすべてのファイルを取得し、.mp3と.jpgファイルのみを含むように結果をフィルタリングします。
Directory.EnumerateFiles()
<code class="language-csharp">var files = Directory.EnumerateFiles("C:\path", "*.*", SearchOption.AllDirectories) .Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg")); </code>
古い.NETバージョンまたはが理想的でない状況の場合、その後カスタムフィルターを適用してDirectory.GetFiles()
を使用できます。
EnumerateFiles()
パフォーマンスに関する考慮事項:GetFiles()
<code class="language-csharp">var files = Directory.GetFiles("C:\path", "*.*", SearchOption.AllDirectories) .Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));</code>
の方が速くなる可能性がありますが、多くのファイルでメモリオーバーヘッドが重要になる可能性があります。 特定のアプリケーションのパフォーマンスとメモリ使用のバランスを最適にする方法を選択してください。
以上がdirectory.getFiles()を使用して複数のフィルターを使用してファイルを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。