[.NET クラスライブラリ Tips][Directory] ディレクトリを列挙するには?

スポンサーリンク

本記事の概要

この記事では、Directory クラスを使用して、ディレクトリを列挙する方法について説明します。

公式サイト情報はコチラを参照してください。

 

ディレクトリを列挙するには?

任意のディレクトリ配下にある全てのディレクトリを列挙するには EnumerateDirectories メソッドを使用します。

EnumerateDirectories はいくつかのオーバーロードがあります。

指定したパス直下にあるディレクトリを列挙する

指定したパスの直下にあるディレクトリを取得するには、以下の構文を使用します。再帰的にディレクトリを取得しませんので注意してください。

public static System.Collections.Generic.IEnumerable<string> 
  EnumerateDirectories (string path);

 

以下にコード例を示します。この例では、「C:¥」直下のディレクトリを列挙します。

using System.IO;

List dirs = new List(Directory.EnumerateDirectories(@"C:\"));

foreach (string dir in dirs)
{
    Console.WriteLine(dir);
}

実行例を以下に示します。

実行例

実行例

 

パターンを指定して、ディレクトリを列挙するには?

指定したパスの直下にある、特定のパターンにマッチするディレクトリを取得するには、以下の構文を使用します。再帰的にディレクトリを取得しませんので注意してください。

第1引数には、列挙対象となる親ディレクトリを、第2引数には検索パターンを指定します。

public static System.Collections.Generic.IEnumerable 
  EnumerateDirectories (string path, string searchPattern);

以下は「C:¥」直下のディレクトリで、「work」という名前を含むディレクトリを列挙します

using System.IO;

List dirs = new List(Directory.EnumerateDirectories(@"C:\","*work*"));

foreach (string dir in dirs)
{
    Console.WriteLine(dir);
}

以下に実行例を示します。

実行例

実行例

 

再帰的にディレクトリを列挙するには?

指定したパスの直下にあるディレクトリを再帰的に取得するには、以下の構文を使用します。

第1引数には、列挙対象となる親ディレクトリを、第2引数には検索パターンを、第3引数には サーチオプションを指定します。サーチオプションには、AllDirectories を指定します。既定でTopDirectoryOnly が指定されます。

public static System.Collections.Generic.IEnumerable<string> 
   EnumerateDirectories (string path, string searchPattern, 
     System.IO.SearchOption searchOption);

以下は「C:¥work」直下のディレクトリで、再帰的にディレクトリを列挙します

using System.IO;

List dirs = new List(Directory.EnumerateDirectories(@"C:\work","*",SearchOption.AllDirectories));

foreach (string dir in dirs)
{
    Console.WriteLine(dir);
}

以下に実行例を示します。

実行例

実行例

Please follow and like us:

コメント

タイトルとURLをコピーしました