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

Directory.EnumerateFiles メソッド (String, String)

更新 : 2010 年 7 月

指定されたパスから、検索パターンに一致するファイル名の列挙可能なコレクションを返します。

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

public static IEnumerable<string> EnumerateFiles(
	string path,
	string searchPattern
)

パラメーター

path
型: System.String
検索するディレクトリ。
searchPattern
型: System.String
path 内のディレクトリの名前と照合する検索文字列。

戻り値

型: System.Collections.Generic.IEnumerable<String>
path で指定されたディレクトリに存在するファイルのうち、searchPattern に一致するファイル名の列挙可能なコレクション。

例外条件
ArgumentException

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

または

searchPattern に、有効なパターンが含まれていません。

ArgumentNullException

pathnull なので、

または

searchPatternnull なので、

DirectoryNotFoundException

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

IOException

path はファイル名です。

PathTooLongException

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

SecurityException

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

UnauthorizedAccessException

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

searchPattern パラメーターで許可されるワイルドカード指定子を次に示します。

ワイルドカード文字

説明

*

0 個以上の文字。

?

1 文字。

path パラメーターで相対パス情報を指定することができます。 相対パス情報は、現在の作業ディレクトリに対して相対的に解釈されます。現在の作業ディレクトリは GetCurrentDirectory メソッドを使用して確認できます。

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

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

次の例は、指定したディレクトリ内に .txt 拡張子を持つファイルがある場合にそれらを列挙し、ファイルの各行を読み取り、文字列 "Europe" が含まれている行を表示しれます。


using System;
using System.Linq;
using System.IO;

class Program
{
	static void Main(string[] args)
	{
		try
		{
			// LINQ query for all .txt files containing the word 'Europe'.
			 var files = from file in 
				Directory.EnumerateFiles(@"\\archives1\library\", "*.txt")
				   where file.ToLower().Contains("europe")
				   select file;

			// Show results.
			foreach (var file in files)
			{
				Console.WriteLine("{0}", file);
			}
			Console.WriteLine("{0} files found.", 
				files.Count<string>().ToString());
		}
			
		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 年 7 月

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

情報の拡充

表示: