C# のディレクトリ内のすべてのファイルを一覧表示する
この投稿では、C# のディレクトリ内のすべてのファイルを一覧表示する方法について説明します。
1.使用する Directory.GetFiles()
方法
あなたは使用することができます Directory.GetFiles() 指定したディレクトリ内のファイルのリストを取得するメソッド。検索するディレクトリの相対パスまたは絶対パスを取り、指定されたディレクトリ内のファイル名 (パスを含む) を含む文字列配列を、固定された順序で返しません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
using System; using System.IO; public class Example { public static void Main() { string path = @"C:\Dir"; string[] files = Directory.GetFiles(path); foreach (string file in files) { Console.WriteLine(file); } } } |
The Directory.GetFiles()
メソッドはオーバーロードされ、指定されたディレクトリ内のファイルと照合する検索パターンを受け入れます。たとえば、次のコードは、指定されたディレクトリ内のすべてのファイルを一覧表示します。 .jpg
拡大。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
using System; using System.IO; public class Example { public static void Main() { string path = @"C:\Dir"; string[] files = Directory.GetFiles(path, "*.jpg"); foreach (string file in files) { Console.WriteLine(file); } } } |
デフォルトでは、 Directory.GetFiles()
メソッドは、現在のディレクトリでのみ検索を実行します。すべてのサブディレクトリを含めるように検索操作を拡張するには、 SearchOption.AllDirectories
オプションを 3 番目のパラメーターとして指定します。たとえば、次のコードは、指定されたディレクトリに存在するすべてのファイルとそのすべてのサブディレクトリを任意の拡張子 (アスタリスク (*)
任意のファイル タイプと一致します)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
using System; using System.IO; public class Example { public static void Main() { string path = @"C:\Dir"; string[] files = Directory.GetFiles(path, "*", SearchOption.AllDirectories); foreach (string file in files) { Console.WriteLine(file); } } } |
すべてのファイルの名前とそのすべてのサブディレクトリのすべての名前を取得する必要がある場合は、 Directory.GetFileSystemEntries
代わりにメソッド。たとえば、次のコードは、指定されたディレクトリに存在するすべてのファイルとサブディレクトリを任意の拡張子で再帰的に一覧表示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
using System; using System.IO; public class Example { public static void Main() { string path = @"C:\Users\adity\OneDrive\Desktop\New folder"; string[] files = Directory.GetFileSystemEntries(path, "*", SearchOption.AllDirectories); foreach (string file in files) { Console.WriteLine(file); } } } |
2.使用する DirectoryInfo.GetFiles()
方法
または、 DirectoryInfo.GetFiles() 現在のディレクトリ内のファイルのリストを返すメソッド。作業コードは次のとおりです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
using System; using System.IO; public class Example { public static void Main() { string path = @"C:\Dir"; DirectoryInfo directory = new DirectoryInfo(path); FileInfo[] files = directory.GetFiles(); foreach (FileInfo file in files) { Console.WriteLine(file.Name); } } } |
以下のような Directory.GetFiles()
、 DirectoryInfo.GetFiles()
メソッドは、検索パターンを受け入れるようにオーバーロードされています。次の例では、指定されたディレクトリ内のすべてのファイルが返されます。 .png
拡大。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using System; using System.IO; public class Example { public static void Main() { string path = @"C:\Dir"; DirectoryInfo directory = new DirectoryInfo(path); FileInfo[] files = directory.GetFiles("*.png"); foreach (FileInfo file in files) { Console.WriteLine(file.Name); } } } |
を指定することで、検索操作をすべてのサブディレクトリに拡張できます。 SearchOption.AllDirectories
オプション。次のコードは、指定されたディレクトリとそのすべてのサブディレクトリ内のすべてのファイルを一覧表示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using System; using System.IO; public class Example { public static void Main() { string path = @"C:\Dir"; DirectoryInfo directory = new DirectoryInfo(path); FileInfo[] files = directory.GetFiles("*", SearchOption.AllDirectories); foreach (FileInfo file in files) { Console.WriteLine(file.Name); } } } |
3.カスタムルーチン
最後に、ソース ディレクトリのすべてのサブディレクトリを含むように検索を拡張するカスタム ルーチンを作成することもできます。 SearchOption.AllDirectories
のオプション Directory.GetFiles()
方法。アイデアは、現在のディレクトリ内のファイルを反復処理して処理することです。ディレクトリにサブディレクトリが含まれている場合は、これを再帰的に行います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
using System; using System.IO; public class Example { public static void WalkDirectory(string path) { foreach (string file in Directory.GetFiles(path)) { Console.WriteLine(file); } foreach (string dir in Directory.GetDirectories(path)) { WalkDirectory(dir); } } public static void Main() { string path = @"C:\Dir"; WalkDirectory(path); } } |
以上で、C# のディレクトリ内のすべてのファイルを一覧表示できます。