この記事の英語版を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語
このドキュメントはアーカイブされており、メンテナンスされていません。

Directory.EnumerateDirectories メソッド (String)

更新 : 2010 年 9 月

指定されたパスに存在するディレクトリ名の列挙可能なコレクションを返します。

名前空間:  System.IO
アセンブリ:  mscorlib (mscorlib.dll 内)

public static IEnumerable<string> EnumerateDirectories(
	string path
)

パラメーター

path
型: System.String
検索するディレクトリ。

戻り値

型: System.Collections.Generic.IEnumerable<String>
path で指定されたディレクトリ内のディレクトリ名の列挙可能なコレクション。

例外条件
ArgumentException

path が、長さが 0 の文字列であるか、空白しか含んでいないか、GetInvalidPathChars で定義されている無効な文字を含んでいます。

ArgumentNullException

pathnull です。

DirectoryNotFoundException

path が無効です (割り当てられていないドライブを参照しているなど)。

IOException

path はファイル名です。

PathTooLongException

指定したパス、ファイル名、またはその組み合わせがシステム定義の最大長を超えています。 たとえば、Windows ベースのプラットフォームの場合、パスの長さは 248 文字未満、ファイル名の長さは 260 文字未満である必要があります。

SecurityException

呼び出し元に、必要なアクセス許可がありません。

UnauthorizedAccessException

呼び出し元に、必要なアクセス許可がありません。

path パラメーターでは、相対パス情報または絶対パス情報を指定することができます。 相対パス情報は、現在の作業ディレクトリに対して相対的に解釈されます。現在の作業ディレクトリは GetCurrentDirectory メソッドを使用して確認できます。 返されるディレクトリ名の先頭には、path パラメーターで指定した値を持つプレフィックスが付きます。 たとえば、path パラメーターで相対パスを指定した場合、返されるディレクトリ名には相対パスが含まれます。

EnumerateDirectories メソッドと GetDirectories メソッドは、以下の点が異なります。EnumerateDirectories を使用すると、全体のコレクションが返される前に、名前のコレクションの列挙が開始される点と、GetDirectories を使用すると、配列にアクセスする前に、返される名前の全体の配列を待機する必要がある点です。 したがって、多くのファイルおよびディレクトリで作業している場合は、EnumerateDirectories の方が効率的である場合があります。

返されるコレクションはキャッシュされません。コレクションに対して GetEnumerator を呼び出すたびに、新たな列挙を開始します。

次の例は、指定したパス内にある最上位のディレクトリを列挙します。


using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;

class Program
{

    private static void Main(string[] args)
    {
        try
        {
            string dirPath = @"\\archives\2009\reports";

            // LINQ query.
            var dirs = from dir in 
                     Directory.EnumerateDirectories(dirPath)
                       select dir;

            // Show results.
            foreach (var dir in dirs)
            {
                // Remove path information from string.
                Console.WriteLine("{0}", 
                    dir.Substring(dir.LastIndexOf("\\") + 1));

            }
            Console.WriteLine("{0} directories found.", 
                dirs.Count<string>().ToString());

            // Optionally create a List collection.
            List<string> workDirs = new List<string>(dirs);
        }
        catch (UnauthorizedAccessException UAEx)
        {
            Console.WriteLine(UAEx.Message);
        }
        catch (PathTooLongException PathEx)
        {
            Console.WriteLine(PathEx.Message);
        }
    }
}


.NET Framework

サポート対象: 4

.NET Framework Client Profile

サポート対象: 4

Windows 7, Windows Vista SP1 以降, Windows XP SP3, Windows Server 2008 (Server Core はサポート対象外), Windows Server 2008 R2 (SP1 以降で Server Core をサポート), Windows Server 2003 SP2

.NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。 サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

Date

History

理由

2010 年 9 月

返されたディレクトリ名の形式を明記しました。

カスタマー フィードバック

2010 年 7 月

キャッシュなしに関して解説が更新されました。

情報の拡充

表示: