DirectoryInfo.GetFileSystemInfos DirectoryInfo.GetFileSystemInfos DirectoryInfo.GetFileSystemInfos DirectoryInfo.GetFileSystemInfos Method

定義

現在のディレクトリのファイルおよびサブディレクトリを表す、厳密に型指定された FileSystemInfo オブジェクトの配列を取得します。Retrieves an array of strongly typed FileSystemInfo objects representing files and subdirectories of the current directory.

オーバーロード

GetFileSystemInfos() GetFileSystemInfos() GetFileSystemInfos() GetFileSystemInfos()

ディレクトリ内のすべてのファイルとサブディレクトリを表す、厳密に型指定された FileSystemInfo エントリの配列を返します。Returns an array of strongly typed FileSystemInfo entries representing all the files and subdirectories in a directory.

GetFileSystemInfos(String) GetFileSystemInfos(String) GetFileSystemInfos(String) GetFileSystemInfos(String)

指定した検索条件に一致するファイルおよびサブディレクトリを表す、厳密に型指定された FileSystemInfo オブジェクトの配列を取得します。Retrieves an array of strongly typed FileSystemInfo objects representing the files and subdirectories that match the specified search criteria.

GetFileSystemInfos(String, EnumerationOptions) GetFileSystemInfos(String, EnumerationOptions) GetFileSystemInfos(String, EnumerationOptions)
GetFileSystemInfos(String, SearchOption) GetFileSystemInfos(String, SearchOption) GetFileSystemInfos(String, SearchOption)

指定した検索条件に一致するファイルおよびサブディレクトリを表す FileSystemInfo オブジェクトの配列を取得します。Retrieves an array of FileSystemInfo objects that represent the files and subdirectories matching the specified search criteria.

GetFileSystemInfos() GetFileSystemInfos() GetFileSystemInfos() GetFileSystemInfos()

ディレクトリ内のすべてのファイルとサブディレクトリを表す、厳密に型指定された FileSystemInfo エントリの配列を返します。Returns an array of strongly typed FileSystemInfo entries representing all the files and subdirectories in a directory.

public:
 cli::array <System::IO::FileSystemInfo ^> ^ GetFileSystemInfos();
public System.IO.FileSystemInfo[] GetFileSystemInfos ();
member this.GetFileSystemInfos : unit -> System.IO.FileSystemInfo[]
Public Function GetFileSystemInfos () As FileSystemInfo()

戻り値

厳密に型指定された FileSystemInfo エントリの配列。An array of strongly typed FileSystemInfo entries.

例外

パスが無効です (割り当てられていないドライブであるなど)。The path is invalid (for example, it is on an unmapped drive).

次の例では、指定されたディレクトリにあるファイルとディレクトリをカウントします。The following example counts the files and directories under the specified directory.

using System;
using System.IO;

class DirectoryFileCount
{

    static long files = 0;
    static long directories = 0;


    static void Main()
    {
        try
        {
            Console.WriteLine("Enter the path to a directory:");

            string directory = Console.ReadLine();

            // Create a new DirectoryInfo object.
            DirectoryInfo dir = new DirectoryInfo(directory);

            if (!dir.Exists)
            {
                throw new DirectoryNotFoundException("The directory does not exist.");
            }

            // Call the GetFileSystemInfos method.
            FileSystemInfo[] infos = dir.GetFileSystemInfos();

            Console.WriteLine("Working...");

            // Pass the result to the ListDirectoriesAndFiles
            // method defined below.
            ListDirectoriesAndFiles(infos);

            // Display the results to the console. 
            Console.WriteLine("Directories: {0}", directories);
            Console.WriteLine("Files: {0}", files);

        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
        finally
        {

            Console.ReadLine();
        }
    }

    static void ListDirectoriesAndFiles(FileSystemInfo[] FSInfo)
    {
        // Check the FSInfo parameter.
        if (FSInfo == null)
        {
            throw new ArgumentNullException("FSInfo");
        }

        // Iterate through each item.
        foreach (FileSystemInfo i in FSInfo)
        {
            // Check to see if this is a DirectoryInfo object.
            if (i is DirectoryInfo)
            {
                // Add one to the directory count.
                directories++;

                // Cast the object to a DirectoryInfo object.
                DirectoryInfo dInfo = (DirectoryInfo)i;

                // Iterate through all sub-directories.
                ListDirectoriesAndFiles(dInfo.GetFileSystemInfos());
            }
            // Check to see if this is a FileInfo object.
            else if (i is FileInfo)
            {
                // Add one to the file count.
                files++;

            }

        }
    }
}
Imports System.IO



Module DirectoryFileCount

    Dim files As Long = 0
    Dim directories As Long = 0



    Sub Main()
        Try
            Console.WriteLine("Enter the path to a directory:")

            Dim directory As String = Console.ReadLine()

            ' Create a new DirectoryInfo object.
            Dim dir As New DirectoryInfo(directory)

            If Not dir.Exists Then
                Throw New DirectoryNotFoundException("The directory does not exist.")
            End If

            ' Call the GetFileSystemInfos method.
            Dim infos As FileSystemInfo() = dir.GetFileSystemInfos()

            Console.WriteLine("Working...")

            ' Pass the result to the ListDirectoriesAndFiles
            ' method defined below.
            ListDirectoriesAndFiles(infos)

            ' Display the results to the console. 
            Console.WriteLine("Directories: {0}", directories)
            Console.WriteLine("Files: {0}", files)

        Catch e As Exception
            Console.WriteLine(e.Message)
        Finally

            Console.ReadLine()
        End Try

    End Sub


    Sub ListDirectoriesAndFiles(ByVal FSInfo() As FileSystemInfo)
        ' Check the FSInfo parameter.
        If FSInfo Is Nothing Then
            Throw New ArgumentNullException("FSInfo")
        End If

        ' Iterate through each item.
        Dim i As FileSystemInfo
        For Each i In FSInfo
            ' Check to see if this is a DirectoryInfo object.
            If TypeOf i Is DirectoryInfo Then
                ' Add one to the directory count.
                directories += 1

                ' Cast the object to a DirectoryInfo object.
                Dim dInfo As DirectoryInfo = CType(i, DirectoryInfo)

                ' Iterate through all sub-directories.
                ListDirectoriesAndFiles(dInfo.GetFileSystemInfos())
                ' Check to see if this is a FileInfo object.
            ElseIf TypeOf i Is FileInfo Then
                ' Add one to the file count.
                files += 1
            End If
        Next i

    End Sub
End Module

注釈

内にDirectoryInfoファイルまたはディレクトリが存在しない場合、このメソッドは空の配列を返します。If there are no files or directories in the DirectoryInfo, this method returns an empty array. このメソッドは再帰的ではありません。This method is not recursive.

サブディレクトリの場合FileSystemInfo 、このメソッドによって返されるオブジェクトは、派生DirectoryInfoクラスにキャストできます。For subdirectories, the FileSystemInfo objects returned by this method can be cast to the derived class DirectoryInfo. プロパティによって返されるFileSystemInfo 値を使用して、がファイルまたはディレクトリを表しているかどうかを確認します。FileAttributes FileSystemInfo.AttributesUse the FileAttributes value returned by the FileSystemInfo.Attributes property to determine whether the FileSystemInfo represents a file or a directory.

このメソッドは、次FileSystemInfoのプロパティの値を事前に設定します。This method pre-populates the values of the following FileSystemInfo properties:

こちらもご覧ください

GetFileSystemInfos(String) GetFileSystemInfos(String) GetFileSystemInfos(String) GetFileSystemInfos(String)

指定した検索条件に一致するファイルおよびサブディレクトリを表す、厳密に型指定された FileSystemInfo オブジェクトの配列を取得します。Retrieves an array of strongly typed FileSystemInfo objects representing the files and subdirectories that match the specified search criteria.

public:
 cli::array <System::IO::FileSystemInfo ^> ^ GetFileSystemInfos(System::String ^ searchPattern);
public System.IO.FileSystemInfo[] GetFileSystemInfos (string searchPattern);
member this.GetFileSystemInfos : string -> System.IO.FileSystemInfo[]
Public Function GetFileSystemInfos (searchPattern As String) As FileSystemInfo()

パラメーター

searchPattern
String String String String

ディレクトリおよびファイルの名前と照合する検索文字列。The search string to match against the names of directories and files. このパラメーターには有効なリテラルのパスとワイルドカード (* と ?) 文字の組み合わせを含めることができますが、正規表現はサポートされていません。This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions.

戻り値

検索基準に一致する、厳密に型指定された FileSystemInfo オブジェクトの配列。An array of strongly typed FileSystemInfo objects matching the search criteria.

例外

searchPattern に、GetInvalidPathChars() メソッドによって定義された 1 つ以上の無効な文字が含まれています。searchPattern contains one or more invalid characters defined by the GetInvalidPathChars() method.

searchPatternnullです。searchPattern is null.

指定されたパスが正しくありません (たとえば、マップされていないドライブにあるなど)。The specified path is invalid (for example, it is on an unmapped drive).

呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

次の例では、指定した検索パターンに一致するファイルとディレクトリをカウントします。The following example counts the files and directories that match the specified search pattern.

using System;
using System.IO;

class DirectoryFileCount
{

    static long files = 0;
    static long directories = 0;


    static void Main()
    {
        try
        {
            Console.WriteLine("Enter the path to a directory:");

            string directory = Console.ReadLine();

            Console.WriteLine("Enter a search string (for example *p*):");

            string searchString = Console.ReadLine();

            // Create a new DirectoryInfo object.
            DirectoryInfo dir = new DirectoryInfo(directory);

            if (!dir.Exists)
            {
                throw new DirectoryNotFoundException("The directory does not exist.");
            }

            // Call the GetFileSystemInfos method.
            FileSystemInfo[] infos = dir.GetFileSystemInfos(searchString);

            Console.WriteLine("Working...");

            // Pass the result to the ListDirectoriesAndFiles
            // method defined below.
            ListDirectoriesAndFiles(infos, searchString);

            // Display the results to the console. 
            Console.WriteLine("Directories: {0}", directories);
            Console.WriteLine("Files: {0}", files);

        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
        finally
        {

            Console.ReadLine();
        }
    }

    static void ListDirectoriesAndFiles(FileSystemInfo[] FSInfo, string SearchString)
    {
        // Check the parameters.
        if (FSInfo == null)
        {
            throw new ArgumentNullException("FSInfo");
        }
        if (SearchString == null || SearchString.Length == 0)
        {
            throw new ArgumentNullException("SearchString");
        }

        // Iterate through each item.
        foreach (FileSystemInfo i in FSInfo)
        {
            // Check to see if this is a DirectoryInfo object.
            if (i is DirectoryInfo)
            {
                // Add one to the directory count.
                directories++;

                // Cast the object to a DirectoryInfo object.
                DirectoryInfo dInfo = (DirectoryInfo)i;

                // Iterate through all sub-directories.
                ListDirectoriesAndFiles(dInfo.GetFileSystemInfos(SearchString), SearchString);
            }
            // Check to see if this is a FileInfo object.
            else if (i is FileInfo)
            {
                // Add one to the file count.
                files++;

            }

        }
    }
}
Imports System.IO



Module DirectoryFileCount

    Dim files As Long = 0
    Dim directories As Long = 0



    Sub Main()
        Try
            Console.WriteLine("Enter the path to a directory:")

            Dim directory As String = Console.ReadLine()

            Console.WriteLine("Enter a search string (for example *p*):")

            Dim searchString As String = Console.ReadLine()

            ' Create a new DirectoryInfo object.
            Dim dir As New DirectoryInfo(directory)

            If Not dir.Exists Then
                Throw New DirectoryNotFoundException("The directory does not exist.")
            End If

            ' Call the GetFileSystemInfos method.
            Dim infos As FileSystemInfo() = dir.GetFileSystemInfos(searchString)

            Console.WriteLine("Working...")

            ' Pass the result to the ListDirectoriesAndFiles
            ' method defined below.
            ListDirectoriesAndFiles(infos, searchString)

            ' Display the results to the console. 
            Console.WriteLine("Directories: {0}", directories)
            Console.WriteLine("Files: {0}", files)

        Catch e As Exception
            Console.WriteLine(e.Message)
        Finally

            Console.ReadLine()
        End Try

    End Sub


    Sub ListDirectoriesAndFiles(ByVal FSInfo() As FileSystemInfo, ByVal SearchString As String)
        ' Check the parameters.
        If FSInfo Is Nothing Then
            Throw New ArgumentNullException("FSInfo")
        End If
        If SearchString Is Nothing OrElse SearchString.Length = 0 Then
            Throw New ArgumentNullException("SearchString")
        End If

        ' Iterate through each item.
        Dim i As FileSystemInfo
        For Each i In FSInfo
            ' Check to see if this is a DirectoryInfo object.
            If TypeOf i Is DirectoryInfo Then
                ' Add one to the directory count.
                directories += 1

                ' Cast the object to a DirectoryInfo object.
                Dim dInfo As DirectoryInfo = CType(i, DirectoryInfo)

                ' Iterate through all sub-directories.
                ListDirectoriesAndFiles(dInfo.GetFileSystemInfos(SearchString), SearchString)
                ' Check to see if this is a FileInfo object.
            ElseIf TypeOf i Is FileInfo Then
                ' Add one to the file count.
                files += 1
            End If
        Next i

    End Sub
End Module

注釈

searchPatternには、リテラル文字とワイルドカード文字の組み合わせを使用できますが、正規表現はサポートされていません。searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. searchPatternは、次のワイルドカード指定子を使用できます。The following wildcard specifiers are permitted in searchPattern.

ワイルドカード指定子Wildcard specifier 一致件数Matches
* (アスタリスク)* (asterisk) その位置に0個以上の文字が含まれています。Zero or more characters in that position.
?? (疑問符)(question mark) その位置に0個または1個の文字。Zero or one character in that position.

ワイルドカード以外の文字はリテラル文字です。Characters other than the wildcard are literal characters. たとえば、"* t" という文字列は、末尾に文字 "t" が付いているすべての名前を検索します。For example, the string "*t" searches for all names in ending with the letter "t". ".". 文字列searchPattern "s*" は、文字 "s" pathで始まるすべての名前を検索します。The searchPattern string "s*" searches for all names in path beginning with the letter "s".

このメソッドは再帰的ではありません。This method is not recursive.

サブディレクトリの場合FileSystemInfo 、このメソッドによって返されるオブジェクトは、派生DirectoryInfoクラスにキャストできます。For subdirectories, the FileSystemInfo objects returned by this method can be cast to the derived class DirectoryInfo. プロパティによって返されるFileSystemInfo 値を使用して、がファイルまたはディレクトリを表しているかどうかを確認します。FileAttributes FileSystemInfo.AttributesUse the FileAttributes value returned by the FileSystemInfo.Attributes property to determine whether the FileSystemInfo represents a file or a directory.

ワイルドカードを使用できます。Wild cards are permitted. たとえば、"* searchPattern t" という文字列は、末尾にpath文字 "t" で終わるすべてのディレクトリ名を検索します。For example, the searchPattern string "*t" searches for all directory names in path ending with the letter "t". 文字列searchPattern "s*" は、文字 "s" でpath始まるすべてのディレクトリ名を検索します。The searchPattern string "s*" searches for all directory names in path beginning with the letter "s".

文字列 ".." は、ディレクトリ名 "a searchPattern . のように有効なディレクトリ名の一部として指定されている場合にのみ、で使用できます。b "のようになります。The string ".." can only be used in searchPattern if it is specified as a part of a valid directory name, such as in the directory name "a..b". ディレクトリ階層の上に移動するために使用することはできません。It cannot be used to move up the directory hierarchy. ファイルまたはディレクトリが存在しない場合、またはsearchPattern DirectoryInfo内の文字列に一致するファイルやディレクトリがない場合、このメソッドは空の配列を返します。If there are no files or directories, or no files or directories that match the searchPattern string in the DirectoryInfo, this method returns an empty array.

このメソッドは、次FileSystemInfoのプロパティの値を事前に設定します。This method pre-populates the values of the following FileSystemInfo properties:

セキュリティ

FileIOPermission
ファイルとディレクトリからの読み取り、およびパスへのアクセスに使用します。for reading from files and directories and for access to the path. 関連付けられReadた列挙型:、PathDiscoveryAssociated enumerations: Read, PathDiscovery

こちらもご覧ください

GetFileSystemInfos(String, EnumerationOptions) GetFileSystemInfos(String, EnumerationOptions) GetFileSystemInfos(String, EnumerationOptions)

public:
 cli::array <System::IO::FileSystemInfo ^> ^ GetFileSystemInfos(System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public System.IO.FileSystemInfo[] GetFileSystemInfos (string searchPattern, System.IO.EnumerationOptions enumerationOptions);
member this.GetFileSystemInfos : string * System.IO.EnumerationOptions -> System.IO.FileSystemInfo[]

パラメーター

searchPattern
String String String String

戻り値

GetFileSystemInfos(String, SearchOption) GetFileSystemInfos(String, SearchOption) GetFileSystemInfos(String, SearchOption)

指定した検索条件に一致するファイルおよびサブディレクトリを表す FileSystemInfo オブジェクトの配列を取得します。Retrieves an array of FileSystemInfo objects that represent the files and subdirectories matching the specified search criteria.

public:
 cli::array <System::IO::FileSystemInfo ^> ^ GetFileSystemInfos(System::String ^ searchPattern, System::IO::SearchOption searchOption);
public System.IO.FileSystemInfo[] GetFileSystemInfos (string searchPattern, System.IO.SearchOption searchOption);
member this.GetFileSystemInfos : string * System.IO.SearchOption -> System.IO.FileSystemInfo[]

パラメーター

searchPattern
String String String String

ディレクトリおよびファイルの名前と照合する検索文字列。The search string to match against the names of directories and files. このパラメーターには有効なリテラルのパスとワイルドカード (* と ?) 文字の組み合わせを含めることができますが、正規表現はサポートされていません。This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions.

searchOption
SearchOption SearchOption SearchOption SearchOption

検索操作に現在のディレクトリのみを含めるのか、またはすべてのサブディレクトリを含めるのかを指定する列挙値の 1 つ。One of the enumeration values that specifies whether the search operation should include only the current directory or all subdirectories. 既定値は TopDirectoryOnly です。The default value is TopDirectoryOnly.

戻り値

検索条件に一致するファイル システム エントリの配列。An array of file system entries that match the search criteria.

例外

searchPattern に、GetInvalidPathChars() メソッドによって定義された 1 つ以上の無効な文字が含まれています。searchPattern contains one or more invalid characters defined by the GetInvalidPathChars() method.

searchPatternnullです。searchPattern is null.

searchOption は有効な SearchOption 値ではありません。searchOption is not a valid SearchOption value.

指定されたパスが正しくありません (たとえば、マップされていないドライブにあるなど)。The specified path is invalid (for example, it is on an unmapped drive).

呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

注釈

searchPatternには、リテラル文字とワイルドカード文字の組み合わせを使用できますが、正規表現はサポートされていません。searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. searchPatternは、次のワイルドカード指定子を使用できます。The following wildcard specifiers are permitted in searchPattern.

ワイルドカード指定子Wildcard specifier 一致件数Matches
* (アスタリスク)* (asterisk) その位置に0個以上の文字が含まれています。Zero or more characters in that position.
?? (疑問符)(question mark) その位置に0個または1個の文字。Zero or one character in that position.

ワイルドカード以外の文字はリテラル文字です。Characters other than the wildcard are literal characters. たとえば、"* t" という文字列は、末尾に文字 "t" が付いているすべての名前を検索します。For example, the string "*t" searches for all names in ending with the letter "t". ".". 文字列searchPattern "s*" は、文字 "s" pathで始まるすべての名前を検索します。The searchPattern string "s*" searches for all names in path beginning with the letter "s".

サブディレクトリの場合FileSystemInfo 、このメソッドによって返されるオブジェクトは、派生DirectoryInfoクラスにキャストできます。For subdirectories, the FileSystemInfo objects returned by this method can be cast to the derived class DirectoryInfo. プロパティによって返されるFileSystemInfo 値を使用して、がファイルまたはディレクトリを表しているかどうかを確認します。FileAttributes FileSystemInfo.AttributesUse the FileAttributes value returned by the FileSystemInfo.Attributes property to determine whether the FileSystemInfo represents a file or a directory.

このメソッドは、次FileSystemInfoのプロパティの値を事前に設定します。This method pre-populates the values of the following FileSystemInfo properties:

こちらもご覧ください

適用対象