本記事の概要
この記事では、Directory クラスを使用して、ファイルを列挙する方法について説明します。
公式サイト情報はコチラを参照してください。
ファイルを列挙するには?
任意のディレクトリ配下にある全てのファイルを列挙するには EnumerateFiles メソッドを使用します。
EnumerateFiles はいくつかのオーバーロードがあります。
指定したパス直下にあるファイルを列挙する
指定したパスの直下にあるディレクトリを取得するには、以下の構文を使用します。再帰的にディレクトリの中を捜索して取得しませんので注意してください。
public static System.Collections.Generic.IEnumerable EnumerateFiles (string path);
以下にコード例を示します。この例では、「C:¥」直下のディレクトリを列挙します。
using System.IO; List files = new List(Directory.EnumerateFiles(@"C:\work")); foreach (string file in files) { Console.WriteLine(file); }
実行例を以下に示します。
パターンを指定して、ファイルを列挙するには?
指定したパスの直下にある、特定のパターンにマッチするファイルを取得するには、以下の構文を使用します。再帰的にディレクトリを取得しませんので注意してください。
第1引数には、列挙対象となる親ディレクトリを、第2引数には検索パターンを指定します。
public static System.Collections.Generic.IEnumerable EnumerateFiles (string path, string searchPattern);
以下は「C:¥work」直下のディレクトリで、「*.txt」という名前を含むディレクトリを列挙します
using System.IO; List files = new List(Directory.EnumerateFiles(@"C:\work","*.txt")); foreach (string file in files) { Console.WriteLine(file); }
再帰的にファイルを列挙するには?
指定したパスの直下にあるファイルを再帰的に取得するには、以下の構文を使用します。 第1引数には、列挙対象となる親ディレクトリを、第2引数には検索パターンを、第3引数には サーチオプションを指定します。サーチオプションには、AllDirectories を指定します。既定でTopDirectoryOnly が指定されます。
public static System.Collections.Generic.IEnumerable<string> EnumerateFiles (string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions);
以下は「C:¥work」直下のディレクトリで、再帰的にディレクトリを列挙します
using System.IO; List files = new List(Directory.EnumerateFiles(@"C:\work", "*.txt", SearchOption.AllDirectories)); foreach (string file in files) { Console.WriteLine(file); }
以下に実行例を示します。
.NET クラスライブラリ Tips
これまでに紹介した .NET クラスライブラリ Tips はコチラから参照できます。
Please follow and like us:
コメント