다음을 통해 공유


DirectoryInfo.GetFileSystemInfos 메서드

정의

현재 디렉터리의 파일과 하위 디렉터리를 나타내는 강력한 형식의 FileSystemInfo 개체 배열을 검색합니다.

오버로드

GetFileSystemInfos()

디렉터리의 모든 파일과 하위 디렉터리를 나타내는 강력한 형식의 FileSystemInfo 엔트리 배열을 반환합니다.

GetFileSystemInfos(String)

지정된 검색 조건과 일치하는 파일 및 하위 디렉터리를 나타내는 강력한 형식의 FileSystemInfo 개체 배열을 검색합니다.

GetFileSystemInfos(String, EnumerationOptions)

지정된 검색 패턴 및 열거형 옵션과 일치하는 파일 및 하위 디렉터리를 나타내는 강력한 형식의 FileSystemInfo 개체 배열을 검색합니다.

GetFileSystemInfos(String, SearchOption)

지정된 검색 조건과 일치하는 파일 및 하위 디렉터리를 나타내는 FileSystemInfo 개체 배열을 검색합니다.

GetFileSystemInfos()

Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs

디렉터리의 모든 파일과 하위 디렉터리를 나타내는 강력한 형식의 FileSystemInfo 엔트리 배열을 반환합니다.

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 엔트리 배열입니다.

예외

경로가 잘못된 경우(예: 매핑되지 않은 드라이브의 경로를 지정한 경우)

예제

다음 예제에서는 지정된 디렉터리 아래의 파일 및 디렉터리를 계산합니다.

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++;
            }
        }
    }
}
open System.IO

let mutable files = 0
let mutable directories = 0

let rec listDirectoriesAndFiles (fsInfo: FileSystemInfo[]) =
    // Check the FSInfo parameter.
    if fsInfo = null then
        nullArg "fsInfo"

    // Iterate through each item.
    for i in fsInfo do
        // Check to see if this is a DirectoryInfo object.
        match i with 
        | :? DirectoryInfo as dInfo ->
            // Add one to the directory count.
            directories <- directories + 1

            // Iterate through all sub-directories.
            listDirectoriesAndFiles (dInfo.GetFileSystemInfos())
        // Check to see if this is a FileInfo object.
        | :? FileInfo ->
            // Add one to the file count.
            files <- files + 1
        | _ -> ()

try
    printfn "Enter the path to a directory:"

    let directory = stdin.ReadLine()

    // Create a new DirectoryInfo object.
    let dir = DirectoryInfo directory

    if not dir.Exists then
        raise (DirectoryNotFoundException "The directory does not exist.")

    // Call the GetFileSystemInfos method.
    let infos = dir.GetFileSystemInfos()

    printfn "Working..."

    // Pass the result to the ListDirectoriesAndFiles
    // method defined below.
    listDirectoriesAndFiles infos

    // Display the results to the console.
    printfn $"Directories: {directories}"
    printfn $"Files: {files}"
with e ->
    printfn $"{e.Message}"
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파일이나 디렉터리 가 없으면 이 메서드는 빈 배열을 반환합니다. 이 메서드는 재귀적이지 않습니다.

하위 디렉터리의 경우 이 메서드에서 FileSystemInfo 반환된 개체를 파생 클래스 DirectoryInfo로 캐스팅할 수 있습니다. 속성에서 반환된 FileAttributesFileSystemInfo.Attributes 값을 사용하여 가 파일 또는 디렉터리를 나타내는지 여부를 FileSystemInfo 확인합니다.

이 메서드는 다음 FileSystemInfo 속성의 값을 미리 채웁니다.

추가 정보

적용 대상

GetFileSystemInfos(String)

Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs

지정된 검색 조건과 일치하는 파일 및 하위 디렉터리를 나타내는 강력한 형식의 FileSystemInfo 개체 배열을 검색합니다.

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

파일에 있는 디렉터리 이름과 일치하는지 비교할 검색 문자열입니다. 이 매개 변수는 유효한 리터럴 경로와 와일드카드(* 및 ?) 문자로 된 조합을 포함하지만 정규식을 지원하지 않습니다.

반환

검색 기준과 일치하는 강력한 형식의 FileSystemInfo 개체 배열입니다.

예외

.NET Framework 및 .NET Core 버전이 2.1 이전 버전: searchPattern 메서드에서 GetInvalidPathChars() 정의한 하나 이상의 잘못된 문자를 포함합니다.

searchPattern이(가) null인 경우

지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있음).

호출자에게 필요한 권한이 없는 경우

예제

다음 예제에서는 지정된 검색 패턴과 일치하는 파일 및 디렉터리를 계산합니다.

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++;
            }
        }
    }
}
open System
open System.IO

let mutable files = 0
let mutable directories = 0

let rec listDirectoriesAndFiles (fsInfo: FileSystemInfo[]) searchString =
    // Check the parameters.
    if fsInfo = null then
        nullArg "fsInfo"

    if String.IsNullOrEmpty searchString then
        invalidArg "searchString" "Search string cannot be empty."
    
    // Iterate through each item.
    for i in fsInfo do
        // Check to see if this is a DirectoryInfo object.
        match i with
        | :? DirectoryInfo as dInfo ->
            // Add one to the directory count.
            directories <- directories + 1

            // Iterate through all sub-directories.
            listDirectoriesAndFiles (dInfo.GetFileSystemInfos searchString) searchString
        // Check to see if this is a FileInfo object.
        | :? FileInfo ->
            // Add one to the file count.
            files <- files + 1
        | _ -> ()

try
    printfn "Enter the path to a directory:"

    let directory = stdin.ReadLine()

    printfn "Enter a search string (for example *p*):"

    let searchString = stdin.ReadLine()

    // Create a new DirectoryInfo object.
    let dir = DirectoryInfo directory

    if not dir.Exists then
        raise (DirectoryNotFoundException "The directory does not exist.")

    // Call the GetFileSystemInfos method.
    let infos = dir.GetFileSystemInfos searchString

    printfn "Working..."

    // Pass the result to the ListDirectoriesAndFiles
    // method defined below.
    listDirectoriesAndFiles infos searchString

    // Display the results to the console.
    printfn $"Directories: {directories}"
    printfn $"Files: {files}"
with e ->
    printfn $"{e.Message}"
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.

와일드카드 지정자 일치하는 항목
*(별표) 해당 위치에 0개 이상의 문자가 있습니다.
? (물음표) 해당 위치에 있는 문자가 0개 또는 1개입니다.

와일드카드 이외의 문자는 리터럴 문자입니다. 예를 들어 문자열 "*t"는 문자 "t"로 끝나는 의 모든 이름을 검색합니다. ". 문자열 "s*"는 searchPattern 문자 "s"로 path 시작하는 의 모든 이름을 검색합니다.

이 메서드는 재귀적이지 않습니다.

하위 디렉터리의 경우 이 메서드에서 FileSystemInfo 반환된 개체를 파생 클래스 DirectoryInfo로 캐스팅할 수 있습니다. 속성에서 반환된 FileAttributesFileSystemInfo.Attributes 값을 사용하여 가 파일 또는 디렉터리를 나타내는지 여부를 FileSystemInfo 확인합니다.

와일드카드가 허용됩니다. 예를 들어 searchPattern 문자열 "*t"는 문자 "t"로 끝나는 의 path 모든 디렉터리 이름을 검색합니다. 문자열 "s*"는 searchPattern 문자 "s"로 시작하는 모든 디렉터리 이름을 path 검색합니다.

".." 문자열은 디렉터리 이름 "a."와 같이 유효한 디렉터리 이름의 일부로 지정된 경우에만 사용할 searchPattern 수 있습니다. b". 디렉터리 계층을 위로 이동하는 데 사용할 수 없습니다. 파일이나 디렉터리도 없거나 의 문자열DirectoryInfo과 일치하는 searchPattern 파일이나 디렉터리도 없는 경우 이 메서드는 빈 배열을 반환합니다.

이 메서드는 다음 FileSystemInfo 속성의 값을 미리 채웁니다.

추가 정보

적용 대상

GetFileSystemInfos(String, EnumerationOptions)

Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs

지정된 검색 패턴 및 열거형 옵션과 일치하는 파일 및 하위 디렉터리를 나타내는 강력한 형식의 FileSystemInfo 개체 배열을 검색합니다.

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[]
Public Function GetFileSystemInfos (searchPattern As String, enumerationOptions As EnumerationOptions) As FileSystemInfo()

매개 변수

searchPattern
String

파일에 있는 디렉터리 이름과 일치하는지 비교할 검색 문자열입니다. 이 매개 변수는 유효한 리터럴 경로와 와일드카드(* 및 ?) 문자로 된 조합을 포함하지만 정규식을 지원하지 않습니다.

enumerationOptions
EnumerationOptions

사용할 검색 및 열거형 구성을 설명하는 개체입니다.

반환

searchPatternenumerationOptions와 일치하는 강력한 형식의 FileSystemInfo 개체 배열입니다.

예외

.NET Framework 및 .NET Core 버전이 2.1 이전 버전: searchPattern 메서드에서 GetInvalidPathChars() 정의한 하나 이상의 잘못된 문자를 포함합니다.

searchPattern이(가) null인 경우

지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있음).

호출자에게 필요한 권한이 없는 경우

설명

searchPattern 는 리터럴과 와일드카드 문자의 조합일 수 있지만 정규식을 지원하지는 않습니다. 에서 허용되는 와일드카드 지정자는 다음과 같습니다 searchPattern.

와일드카드 지정자 일치하는 항목
*(별표) 해당 위치에 0개 이상의 문자가 있습니다.
? (물음표) 해당 위치에 있는 문자가 0개 또는 1개입니다.

와일드카드 이외의 문자는 리터럴 문자입니다. 예를 들어 문자열 "*t"는 문자 "t"로 끝나는 의 모든 이름을 검색합니다. ". 문자열 "s*"는 searchPattern 문자 "s"로 path 시작하는 의 모든 이름을 검색합니다.

이 메서드는 재귀적이지 않습니다.

하위 디렉터리의 경우 이 메서드에서 FileSystemInfo 반환된 개체를 파생 클래스 DirectoryInfo로 캐스팅할 수 있습니다. 속성에서 반환된 FileAttributesFileSystemInfo.Attributes 값을 사용하여 가 파일 또는 디렉터리를 나타내는지 여부를 FileSystemInfo 확인합니다.

와일드카드가 허용됩니다. 예를 들어 searchPattern 문자열 "*t"는 문자 "t"로 끝나는 의 path 모든 디렉터리 이름을 검색합니다. 문자열 "s*"는 searchPattern 문자 "s"로 시작하는 모든 디렉터리 이름을 path 검색합니다.

".." 문자열은 디렉터리 이름 "a."와 같이 유효한 디렉터리 이름의 일부로 지정된 경우에만 사용할 searchPattern 수 있습니다. b". 디렉터리 계층을 위로 이동하는 데 사용할 수 없습니다. 파일이나 디렉터리도 없거나 의 문자열DirectoryInfo과 일치하는 searchPattern 파일이나 디렉터리도 없는 경우 이 메서드는 빈 배열을 반환합니다.

이 메서드는 다음 FileSystemInfo 속성의 값을 미리 채웁니다.

적용 대상

GetFileSystemInfos(String, SearchOption)

Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs

지정된 검색 조건과 일치하는 파일 및 하위 디렉터리를 나타내는 FileSystemInfo 개체 배열을 검색합니다.

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[]
Public Function GetFileSystemInfos (searchPattern As String, searchOption As SearchOption) As FileSystemInfo()

매개 변수

searchPattern
String

파일에 있는 디렉터리 이름과 일치하는지 비교할 검색 문자열입니다. 이 매개 변수는 유효한 리터럴 경로와 와일드카드(* 및 ?) 문자로 된 조합을 포함하지만 정규식을 지원하지 않습니다.

searchOption
SearchOption

검색 작업에 현재 디렉터리만 포함할지 아니면 모든 하위 디렉터리를 포함할지를 지정하는 열거형 값 중 하나입니다. 기본값은 TopDirectoryOnly입니다.

반환

검색 조건과 일치하는 파일 시스템 항목의 배열입니다.

예외

.NET Framework 및 .NET Core 버전이 2.1 이전 버전: searchPattern 메서드에서 GetInvalidPathChars() 정의한 하나 이상의 잘못된 문자를 포함합니다.

searchPatternnull입니다.

searchOption는 유효한 SearchOption 값이 아닙니다.

지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있음).

호출자에게 필요한 권한이 없는 경우

설명

searchPattern 는 리터럴과 와일드카드 문자의 조합일 수 있지만 정규식을 지원하지는 않습니다. 에서 허용되는 와일드카드 지정자는 다음과 같습니다 searchPattern.

와일드카드 지정자 일치하는 항목
*(별표) 해당 위치에 0개 이상의 문자가 있습니다.
? (물음표) 해당 위치에 있는 문자가 0개 또는 1개입니다.

와일드카드 이외의 문자는 리터럴 문자입니다. 예를 들어 문자열 "*t"는 문자 "t"로 끝나는 의 모든 이름을 검색합니다. ". 문자열 "s*"는 searchPattern 문자 "s"로 path 시작하는 의 모든 이름을 검색합니다.

하위 디렉터리의 경우 이 메서드에서 FileSystemInfo 반환된 개체를 파생 클래스 DirectoryInfo로 캐스팅할 수 있습니다. 속성에서 반환된 FileAttributes 값을 사용하여 가 FileSystemInfo.AttributesFileSystemInfo 파일 또는 디렉터리를 나타내는지 여부를 확인합니다.

이 메서드는 다음 FileSystemInfo 속성의 값을 미리 채웁니다.

추가 정보

적용 대상