次の方法で共有


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

指定した検索パターンに一致するディレクトリの配列を現在のディレクトリから取得します。

Overloads Public Shared Function GetDirectories( _
   ByVal path As String, _   ByVal searchPattern As String _) As String()
[C#]
public static string[] GetDirectories(stringpath,stringsearchPattern);
[C++]
public: static String* GetDirectories(String* path,String* searchPattern)  __gc[];
[JScript]
public static function GetDirectories(
   path : String,searchPattern : String) : String[];

パラメータ

  • path
    テストするパス。
  • searchPattern
    path 内のファイル名と対応させる検索文字列。このパラメータは、2 つのピリオド ("..") で終了することはできません。また、2 つのピリオド ("..") に続けて DirectorySeparatorChar または AltDirectorySeparatorChar を指定したり、 InvalidPathChars の文字を含めたりすることはできません。

戻り値

検索パターンに一致するディレクトリの String 配列。

例外

例外の種類 条件
UnauthorizedAccessException 呼び出し元に、必要なアクセス許可がありません。
ArgumentException path が、長さが 0 の文字列であるか、空白しか含んでいないか、または InvalidPathChars で定義されている無効な文字を 1 つ以上含んでいます。

または

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

ArgumentNullException path または searchPattern が null 参照 (Visual Basic では Nothing) です。
PathTooLongException 指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。たとえば、Windows ベースのプラットフォームの場合、パスの長さは 248 文字未満、ファイル名の長さは 260 文字未満である必要があります。
IOException path はファイル名です。
DirectoryNotFoundException 割り当てられていないドライブであるなど、指定されたパスが無効です。

解説

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

ワイルドカード文字 説明
* 0 個以上の文字。
? 1 文字。

ワイルドカード指定子以外の文字は、その文字自体を表します。たとえば、 searchPattern 文字列 "*t" は、 path 内で、文字 "t" で終わるすべての名前を検索します。 searchPattern 文字列 "s*" は、 path 内で、文字 "s" で始まるすべての名前を検索します。

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

path パラメータでは大文字と小文字が区別されません。

このメソッドの使用例については、以下の「使用例」を参照してください。その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します。

実行するタスク 参考例があるトピック
テキスト ファイルを作成する。 ファイルへのテキストの書き込み
テキスト ファイルに書き込む。 ファイルへのテキストの書き込み
テキスト ファイルから読み取る。 ファイルからのテキストの読み取り
ディレクトリをコピーする。 Directory
ディレクトリの名前を変更、またはディレクトリを移動する。 Directory.Move

DirectoryInfo.MoveTo

ディレクトリを削除する。 Directory.Delete

DirectoryInfo.Delete

ディレクトリを作成する。 CreateDirectory

Directory

サブディレクトリを作成する。 CreateSubdirectory
ディレクトリ内のファイルを参照する。 Name
ディレクトリ内のすべてのサブディレクトリにあるすべてのファイルを参照する。 GetFileSystemInfos
ディレクトリのサイズを取得する。 Directory
ディレクトリが存在するかどうかを判別する。 Exists

使用例

[Visual Basic, C#, C++] 指定した文字で始まるパス内のディレクトリの数をカウントする例を次に示します。

 
Imports System
Imports System.IO

Public Class Test
    Public Shared Sub Main()
        Try
            ' Only get subdirectories that begin with the letter "p."
            Dim dirs As String() = Directory.GetDirectories("c:\", "p*")
            Console.WriteLine("The number of directories starting with p is {0}.", dirs.Length)
            Dim dir As String
            For Each dir In dirs
                Console.WriteLine(dir)
            Next
        Catch e As Exception
            Console.WriteLine("The process failed: {0}", e.ToString())
        End Try
    End Sub
End Class

[C#] 
using System;
using System.IO;

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

[C++] 
#using <mscorlib.dll>

using namespace System;
using namespace System::IO;

int main() {
    try {
        // Only get subdirectories that begin with the letter "p."
        String* dirs[] = Directory::GetDirectories(S"c:\\", S"p*");
        Console::WriteLine(S"The number of directories starting with p is {0}.", __box(dirs->Length));
        Collections::IEnumerator* myEnum = dirs->GetEnumerator();
        while (myEnum->MoveNext()) {
            Console::WriteLine(myEnum->Current);
        }
    } catch (Exception* e) {
        Console::WriteLine(S"The process failed: {0}", e);
    }
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard

.NET Framework セキュリティ:

参照

Directory クラス | Directory メンバ | System.IO 名前空間 | Directory.GetDirectories オーバーロードの一覧 | 入出力操作 | ファイルからのテキストの読み取り | ファイルへのテキストの書き込み