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

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

 

公開日: 2016年10月

指定したディレクトリ内の指定した検索パターンに一致するファイル名 (パスを含む) を返します。

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

public static string[] GetFiles(
	string path,
	string searchPattern
)

パラメーター

path
Type: System.String

検索するディレクトリの相対パスまたは絶対パス。 この文字列の大文字と小文字は区別されません。

searchPattern
Type: System.String

path 内のファイル名と対応させる検索文字列。 このパラメーターには、有効なリテラル パスとワイルドカード (* および ?) の組み合わせを使用できます。 文字 (「解説」を参照) の組み合わせを使用できますが、正規表現はサポートしていません。

戻り値

Type: System.String[]

指定したディレクトリ内の指定した検索パターンに一致するファイルの完全名 (パスを含む) の配列。または、ファイルが見つからない場合は空の配列。

Exception Condition
IOException

path はファイル名です。

または

ネットワーク エラーが発生しました。

UnauthorizedAccessException

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

ArgumentException

path は長さゼロの文字列か、空白のみで構成されているか、または 1 つ以上の正しくない文字を含んでいます。 GetInvalidPathChars を使用して、正しくない文字を検出するクエリを実行できます。

-または-

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

ArgumentNullException

path または searchPatternnull です。

PathTooLongException

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

DirectoryNotFoundException

指定されたパスが見つからないか正しくありません (たとえば、マップされていないドライブにあるなど)。

返されるファイル名が追加されますを指定された path パラメーターと返されるファイル名の順序は保証されません。 を使用して、 Sort メソッドの特定の並べ替え順序が必要な場合です。

searchPattern リテラルのパスとワイルドカードの組み合わせは、文字が、正規表現をサポートしていないを指定できます。 次のワイルドカード文字は使用 searchPatternします。

ワイルドカードの指定子

一致する文字列

* (アスタリスク)

その位置に 0 個以上の文字。

? (疑問符 ())

その位置に 0 個または 1 文字。

ワイルドカード以外の文字は、リテラル文字です。 たとえば、 searchPattern 文字列"* t"ですべての名前を検索 path 文字"t"で終わる。 searchPattern 文字列内のすべての名前を「s *"検索 path "s"の文字で始まります。

searchPattern 2 つのピリオドで終わることはできません ("..") 2 つのピリオドが含まれているか ("..") 続いて DirectorySeparatorChar または AltDirectorySeparatorChar, 、無効な文字を含めることもできます。 正しくない文字を照会するには、GetInvalidPathChars メソッドを使用します。

System_CAPS_noteメモ

アスタリスクのワイルドカード文字を使用する場合、 searchPattern 「*.txt」など、指定した拡張子の文字数影響を与えます検索次ようにします。

  • 指定された拡張機能が 3 文字の場合は、指定した拡張子が始まる拡張子を持つファイルを返します。 たとえば、「*.xls」には、"book.xls"と"book.xlsx"両方が返されます。

  • その他のすべてのケースでは、メソッドは、指定された拡張機能を正確に一致するファイルを返します。 たとえば、"* .ai"が"file.ai"、"file.aif"を返します。

疑問符 () のワイルドカード文字を使用すると、このメソッドは、指定されたファイル拡張子に一致するファイルのみを返します。 たとえば、ディレクトリの検索パターンに 2 つのファイル、"file1.txt"および"file1.txtother"指定された"ファイル? です。txt"は最初のファイルだけを返し、"file*.txt"の検索パターンには、両方のファイルが返されます。

System_CAPS_noteメモ

検索パターンに似ていますので、このメソッドは、8.3 形式のファイル名の形式と長いファイル名の形式の両方でのファイル名をチェックして、"* *1*.txt"予期しないファイル名を返す可能性があります。 検索パターンの使用例を"* *1*.txt"と同等の 8.3 形式のファイル名の形式が"LONGFI~1.TXT"であるため"longfilename.txt"が返されます。

EnumerateFilesGetFiles メソッドは次のように異なります: を使用すると EnumerateFiles, 、コレクション全体が返される前に、名前のコレクションの列挙を開始することができます。 使用すると GetFiles, 、配列にアクセスする前に返される名前の配列全体を待つ必要があります。 そのため、ときに使用する多数のファイルとディレクトリ、 EnumerateFiles 効率的であることができます。

path パラメーターは、相対パスまたは絶対パス情報を指定できます。 相対パスの詳細については、現在の作業ディレクトリに対して相対的に解釈されます。 現在の作業ディレクトリを取得するには、次を参照してください。 GetCurrentDirectoryします。

path パラメーターは、大文字小文字を区別することはありません。

共通 I/O タスクの一覧は、次を参照してください。 共通 I/O タスクします。

次の例では、指定した文字で始まるファイルの数をカウントします。

using System;
using System.IO;

class Test 
{
    public static void Main() 
    {
        try 
        {
            // Only get files that begin with the letter "c."
            string[] dirs = Directory.GetFiles(@"c:\", "c*");
            Console.WriteLine("The number of files starting with c is {0}.", dirs.Length);
            foreach (string dir in dirs) 
            {
                Console.WriteLine(dir);
            }
        } 
        catch (Exception e) 
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
    }
}

FileIOPermission

for access to path information for the current directory. Associated enumeration: F:System.Security.Permissions.FileIOPermissionAccess.PathDiscovery

ユニバーサル Windows プラットフォーム
10 以降で使用可能
.NET Framework
1.1 以降で使用可能
Silverlight
2.0 以降で使用可能
Windows Phone Silverlight
7.0 以降で使用可能
トップに戻る
表示: