Directory.EnumerateFiles 方法

定义

返回满足指定条件的完整文件名的可枚举集合。

重载

EnumerateFiles(String, String, SearchOption)

返回指定路径中与搜索模式匹配的完整文件名的可枚举集合,还可以搜索子目录。

EnumerateFiles(String, String, EnumerationOptions)

返回指定路径中与搜索模式和枚举选项匹配的完整文件名的可枚举集合,还可以搜索子目录。

EnumerateFiles(String)

返回指定路径中的完整文件名的可枚举集合。

EnumerateFiles(String, String)

返回指定路径中与搜索模式匹配的完整文件名的可枚举集合。

EnumerateFiles(String, String, SearchOption)

Source:
Directory.cs
Source:
Directory.cs
Source:
Directory.cs

返回指定路径中与搜索模式匹配的完整文件名的可枚举集合,还可以搜索子目录。

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateFiles(System::String ^ path, System::String ^ searchPattern, System::IO::SearchOption searchOption);
public static System.Collections.Generic.IEnumerable<string> EnumerateFiles (string path, string searchPattern, System.IO.SearchOption searchOption);
static member EnumerateFiles : string * string * System.IO.SearchOption -> seq<string>
Public Shared Function EnumerateFiles (path As String, searchPattern As String, searchOption As SearchOption) As IEnumerable(Of String)

参数

path
String

要搜索的目录的相对或绝对路径。 此字符串不区分大小写。

searchPattern
String

要与 path 中的文件名匹配的搜索字符串。 此参数可以包含有效文本路径和通配符(* 和 ?)的组合,但不支持正则表达式。

searchOption
SearchOption

指定搜索操作是应仅包含当前目录还是应包含所有子目录的枚举值之一。 默认值是 TopDirectoryOnly

返回

一个可枚举集合,它包含 path 指定的目录中与指定的搜索模式和搜索选项匹配的文件的完整名称(包括路径)。

例外

.NET Framework和 .NET Core 版本早于 2.1: path 是长度为零的字符串,仅包含空格或包含无效字符。 你可以使用 GetInvalidPathChars() 方法查询无效字符。

- 或 -

searchPattern 不包含有效模式。

pathnull

searchPatternnull

searchOption 不是有效的 SearchOption 值。

path 无效,如引用未映射的驱动器。

path 是一个文件名。

指定的路径和/或文件名超过了系统定义的最大长度。

调用方没有所要求的权限。

调用方没有所要求的权限。

示例

以下示例演示如何检索目录及其子目录中的所有文本文件,并将其移动到新目录。 移动文件后,它们不再存在于原始目录中。

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectory = @"C:\current";
            string archiveDirectory = @"C:\archive";

            try
            {
                var txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt", SearchOption.AllDirectories);

                foreach (string currentFile in txtFiles)
                {
                    string fileName = currentFile.Substring(sourceDirectory.Length + 1);
                    Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
open System.IO

let sourceDirectory = @"C:\current"
let archiveDirectory = @"C:\archive"

try
    let txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt", SearchOption.AllDirectories)

    for currentFile in txtFiles do
        let fileName = currentFile.Substring(sourceDirectory.Length + 1)
        Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))
with e ->
    printfn $"{e.Message}"
Imports System.IO

Module Module1

    Sub Main()
        Dim sourceDirectory As String = "C:\current"
        Dim archiveDirectory As String = "C:\archive"

        Try
            Dim txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt", SearchOption.AllDirectories)

            For Each currentFile As String In txtFiles
                Dim fileName = currentFile.Substring(sourceDirectory.Length + 1)
                Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))
            Next
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try

    End Sub

End Module

以下示例以递归方式枚举扩展名为 .txt的所有文件,读取文件的每一行,如果它包含字符串“Microsoft”,则显示该行。

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

class Program
{
    static void Main(string[] args)
    {
        try
        {
            // Set a variable to the My Documents path.
            string docPath =
            Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

            var files = from file in Directory.EnumerateFiles(docPath, "*.txt", SearchOption.AllDirectories)
                        from line in File.ReadLines(file)
                        where line.Contains("Microsoft")
                        select new
                        {
                            File = file,
                            Line = line
                        };

            foreach (var f in files)
            {
                Console.WriteLine($"{f.File}\t{f.Line}");
            }
            Console.WriteLine($"{files.Count().ToString()} files found.");
        }
        catch (UnauthorizedAccessException uAEx)
        {
            Console.WriteLine(uAEx.Message);
        }
        catch (PathTooLongException pathEx)
        {
            Console.WriteLine(pathEx.Message);
        }
    }
}
open System
open System.IO

try
    // Set a variable to the My Documents path.
    let docPath =
        Environment.GetFolderPath Environment.SpecialFolder.MyDocuments

    let files =
        query {
            for file in Directory.EnumerateFiles(docPath, "*.txt", SearchOption.AllDirectories) do
            for line in File.ReadLines file do
            where (line.Contains "Microsoft")
            select {| File = file; Line = line |}
        }

    for f in files do
        printfn $"{f.File}\t{f.Line}"
    printfn $"{Seq.length files} files found."

with
| :? UnauthorizedAccessException as uAEx -> printfn $"{uAEx.Message}"
| :? PathTooLongException as pathEx -> printfn $"{pathEx.Message}"
Imports System.IO
Imports System.Xml.Linq

Module Module1

    Sub Main()
        Try
            Dim docPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
            Dim files = From chkFile In Directory.EnumerateFiles(docPath, "*.txt", SearchOption.AllDirectories)
                        From line In File.ReadLines(chkFile)
                        Where line.Contains("Microsoft")
                        Select New With {.curFile = chkFile, .curLine = line}

            For Each f In files
                Console.WriteLine($"{f.File}\t{f.Line}")
            Next
            Console.WriteLine($"{files.Count} files found.")
        Catch uAEx As UnauthorizedAccessException
            Console.WriteLine(uAEx.Message)
        Catch pathEx As PathTooLongException
            Console.WriteLine(pathEx.Message)
        End Try
    End Sub
End Module

注解

searchPattern 可以是文本和通配符的组合,但它不支持正则表达式。 中 searchPattern允许使用以下通配符说明符。

通配符说明符 匹配
*(星号) 该位置的零个或多个字符。
? (问号) 恰好在该位置有一个字符。

通配符以外的字符是文本字符。 例如, searchPattern 字符串“*t”搜索以字母“t”结尾的所有名称 path 。 字符串 searchPattern “s*”搜索以字母“s”开头的所有名称 path

注意

仅.NET Framework:在 中使用星号通配符searchPattern并指定三字符文件扩展名(例如“*.txt”)时,此方法还会返回扩展名以指定扩展名开头的文件。 例如,搜索模式“*.xls”同时返回“book.xls”和“book.xlsx”。 仅当搜索模式中使用星号且提供的文件扩展名正好为三个字符时,才会发生此行为。 如果在搜索模式中的某个位置使用问号通配符,则此方法仅返回与指定文件扩展名完全匹配的文件。 下表描述了 .NET Framework 中的此异常。

目录中的文件 搜索模式 .NET 5+ 返回 .NET Framework返回
file.ai、file.aif *。艾 file.ai file.ai
book.xls、book.xlsx *.xls book.xls book.xls、book.xlsx
ello.txt、hello.txt、hello.txtt ?ello.txt hello.txt hello.txt

searchPattern 不能以两个句点结束, (.”) 或包含两个句点 (“.”) 后 DirectorySeparatorChar 跟 或 AltDirectorySeparatorChar,也不能包含任何无效字符。 你可以使用 GetInvalidPathChars 方法查询无效字符。

可以使用 参数指定相对路径信息 path 。 相对路径信息被解释为相对于当前工作目录的信息,可以使用 方法确定 GetCurrentDirectory 该目录。

EnumerateFilesGetFiles 方法的不同之处如下:使用 EnumerateFiles时,可以在返回整个集合之前开始枚举名称集合。 使用 GetFiles时,必须等待返回整个名称数组,然后才能访问该数组。 因此,在处理许多文件和目录时, EnumerateFiles 可以更高效。

不缓存返回的集合。 每次对 GetEnumerator 集合的 调用都会启动一个新的枚举。

适用于

EnumerateFiles(String, String, EnumerationOptions)

Source:
Directory.cs
Source:
Directory.cs
Source:
Directory.cs

返回指定路径中与搜索模式和枚举选项匹配的完整文件名的可枚举集合,还可以搜索子目录。

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateFiles(System::String ^ path, System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public static System.Collections.Generic.IEnumerable<string> EnumerateFiles (string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions);
static member EnumerateFiles : string * string * System.IO.EnumerationOptions -> seq<string>
Public Shared Function EnumerateFiles (path As String, searchPattern As String, enumerationOptions As EnumerationOptions) As IEnumerable(Of String)

参数

path
String

要搜索的目录的相对或绝对路径。 此字符串不区分大小写。

searchPattern
String

要与 path 中的文件名匹配的搜索字符串。 此参数可以包含有效文本路径和通配符(* 和 ?)的组合,但不支持正则表达式。

enumerationOptions
EnumerationOptions

描述要使用的搜索和枚举配置的对象。

返回

一个可枚举集合,它包含 path 指定的目录中与指定的搜索模式和枚举选项匹配的文件的完整名称(包括路径)。

例外

.NET Framework和 .NET Core 版本早于 2.1: path 是长度为零的字符串,仅包含空格或包含无效字符。 你可以使用 GetInvalidPathChars() 方法查询无效字符。

- 或 -

searchPattern 不包含有效模式。

pathnull

searchPatternnull

searchOption 不是有效的 SearchOption 值。

path 无效,如引用未映射的驱动器。

path 是一个文件名。

指定的路径和/或文件名超过了系统定义的最大长度。

调用方没有所要求的权限。

注解

searchPattern 可以是文本和通配符的组合,但它不支持正则表达式。 中 searchPattern允许使用以下通配符说明符。

通配符说明符 匹配
*(星号) 该位置的零个或多个字符。
? (问号) 恰好是该位置中的一个字符。

通配符以外的字符是文本字符。 例如, searchPattern 字符串“*t”搜索以字母“t”结尾的所有名称 path 。 字符串 searchPattern “s*”搜索以字母“s”开头的所有名称 path

注意

仅.NET Framework:在 中使用searchPattern星号通配符并指定三字符文件扩展名(例如“*.txt”)时,此方法还会返回扩展名以指定扩展名开头的文件。 例如,搜索模式“*.xls”返回“book.xls”和“book.xlsx”。 仅当搜索模式中使用星号且提供的文件扩展名正好为三个字符时,才会发生此行为。 如果在搜索模式中的某个位置使用问号通配符,则此方法仅返回与指定文件扩展名完全匹配的文件。 下表描述了 .NET Framework 中的此异常。

目录中的文件 搜索模式 .NET 5+ 返回 .NET Framework返回
file.ai、file.aif *。艾 file.ai file.ai
book.xls、book.xlsx *.xls book.xls book.xls、book.xlsx
ello.txt、hello.txt、hello.txtt ?ello.txt hello.txt hello.txt

searchPattern 不能以两个句点结束, (.”) 或包含两个句点 (.”) 后 DirectorySeparatorChar 跟 或 AltDirectorySeparatorChar,也不能包含任何无效字符。 你可以使用 GetInvalidPathChars 方法查询无效字符。

可以使用 参数指定相对路径信息 path 。 相对路径信息解释为相对于当前工作目录的信息,可以使用 方法确定 GetCurrentDirectory 该目录。

EnumerateFilesGetFiles 方法的不同之处如下:使用 EnumerateFiles时,可以在返回整个集合之前开始枚举名称集合。 使用 GetFiles时,必须等待返回整个名称数组,然后才能访问数组。 因此,在使用许多文件和目录时, EnumerateFiles 可以更高效。

不缓存返回的集合。 每次对 GetEnumerator 集合上的 调用都会启动一个新的枚举。

适用于

EnumerateFiles(String)

Source:
Directory.cs
Source:
Directory.cs
Source:
Directory.cs

返回指定路径中的完整文件名的可枚举集合。

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateFiles(System::String ^ path);
public static System.Collections.Generic.IEnumerable<string> EnumerateFiles (string path);
static member EnumerateFiles : string -> seq<string>
Public Shared Function EnumerateFiles (path As String) As IEnumerable(Of String)

参数

path
String

要搜索的目录的相对或绝对路径。 此字符串不区分大小写。

返回

一个可枚举集合,它包含目录中 path 指定的文件的完整名称(包括路径)。

例外

.NET Framework 和 2.1 之前的 .NET Core 版本:path是长度为零的字符串,仅包含空格或包含无效字符。 你可以使用 GetInvalidPathChars() 方法查询无效字符。

pathnull

path 无效,如引用未映射的驱动器。

path 是一个文件名。

指定的路径和/或文件名超过了系统定义的最大长度。

调用方没有所要求的权限。

调用方没有所要求的权限。

示例

以下示例演示如何检索目录中的所有文件并将其移动到新目录。 移动文件后,它们不再存在于原始目录中。

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectory = @"C:\current";
            string archiveDirectory = @"C:\archive";

            try
            {
                var txtFiles = Directory.EnumerateFiles(sourceDirectory);

                foreach (string currentFile in txtFiles)
                {
                    string fileName = currentFile.Substring(sourceDirectory.Length + 1);
                    Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
open System.IO

let sourceDirectory = @"C:\current"
let archiveDirectory = @"C:\archive"

try
    let txtFiles = Directory.EnumerateFiles sourceDirectory

    for currentFile in txtFiles do
        let fileName = currentFile.Substring(sourceDirectory.Length + 1)
        Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))
with e ->
    printfn $"{e.Message}"
Imports System.IO

Module Module1

    Sub Main()
        Dim sourceDirectory As String = "C:\current"
        Dim archiveDirectory As String = "C:\archive"

        Try
            Dim txtFiles = Directory.EnumerateFiles(sourceDirectory)

            For Each currentFile As String In txtFiles
                Dim fileName = currentFile.Substring(sourceDirectory.Length + 1)
                Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))
            Next
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try

    End Sub

End Module

以下示例枚举指定目录中的文件,读取文件的每一行,如果包含字符串“Europe”,则显示该行。

using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;

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

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

try
    // All files containing the word 'Europe'.
    let files =
        Directory.EnumerateFiles @"\\archives1\library\"
        |> Seq.filter (fun file -> file.ToLower().Contains "europe")

    for file in files do
        printfn $"{file}"
    printfn $"{Seq.length files} files found."

with 
| :? UnauthorizedAccessException as uaEx ->
    printfn $"{uaEx.Message}"
| :? PathTooLongException as pathEx ->
    printfn $"{pathEx.Message}"
Imports System.IO
Imports System.Linq

Module Module1

    Sub Main()
        Try
            ' LINQ query for all files containing the word 'Europe'.
            Dim files = From file In Directory.EnumerateFiles("\\archives1\library\")
                Where file.ToLower().Contains("europe")

            For Each file In files
                Console.WriteLine("{0}", file)
            Next
            Console.WriteLine("{0} files found.", files.Count.ToString())
        Catch UAEx As UnauthorizedAccessException
            Console.WriteLine(UAEx.Message)
        Catch PathEx As PathTooLongException
            Console.WriteLine(PathEx.Message)
        End Try
    End Sub

End Module

注解

可以使用 参数指定相对路径信息 path 。 相对路径信息解释为相对于当前工作目录的信息,可以使用 方法确定 GetCurrentDirectory 该目录。

EnumerateFilesGetFiles 方法的不同之处如下:使用 EnumerateFiles时,可以在返回整个集合之前开始枚举名称集合。 使用 GetFiles时,必须等待返回整个名称数组,然后才能访问数组。 因此,在使用许多文件和目录时, EnumerateFiles 可以更高效。

未缓存返回的集合;每次调用 GetEnumerator 集合上的 将启动一个新的枚举。

适用于

EnumerateFiles(String, String)

Source:
Directory.cs
Source:
Directory.cs
Source:
Directory.cs

返回指定路径中与搜索模式匹配的完整文件名的可枚举集合。

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateFiles(System::String ^ path, System::String ^ searchPattern);
public static System.Collections.Generic.IEnumerable<string> EnumerateFiles (string path, string searchPattern);
static member EnumerateFiles : string * string -> seq<string>
Public Shared Function EnumerateFiles (path As String, searchPattern As String) As IEnumerable(Of String)

参数

path
String

要搜索的目录的相对或绝对路径。 此字符串不区分大小写。

searchPattern
String

要与 path 中的文件名匹配的搜索字符串。 此参数可以包含有效文本路径和通配符(* 和 ?)的组合,但不支持正则表达式。

返回

path 指定且与指定的搜索模式相匹配的目录中的文件的全名(包括路径)的可枚举集合。

例外

.NET Framework 和 2.1 之前的 .NET Core 版本:path是长度为零的字符串,仅包含空格或包含无效字符。 你可以使用 GetInvalidPathChars() 方法查询无效字符。

- 或 -

searchPattern 不包含有效模式。

pathnull

searchPatternnull

path 无效,如引用未映射的驱动器。

path 是一个文件名。

指定的路径和/或文件名超过了系统定义的最大长度。

调用方没有所要求的权限。

调用方没有所要求的权限。

示例

以下示例演示如何检索目录中的所有文本文件并将其移动到新目录。 移动文件后,它们不再存在于原始目录中。

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectory = @"C:\current";
            string archiveDirectory = @"C:\archive";

            try
            {
                var txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt");

                foreach (string currentFile in txtFiles)
                {
                    string fileName = currentFile.Substring(sourceDirectory.Length + 1);
                    Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
open System.IO

let sourceDirectory = @"C:\current"
let archiveDirectory = @"C:\archive"

try
    let txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt")

    for currentFile in txtFiles do
        let fileName = currentFile.Substring(sourceDirectory.Length + 1)
        Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))

with e ->
    printfn $"{e.Message}"
Imports System.IO

Module Module1

    Sub Main()
        Dim sourceDirectory As String = "C:\current"
        Dim archiveDirectory As String = "C:\archive"

        Try
            Dim txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt")

            For Each currentFile As String In txtFiles
                Dim fileName = currentFile.Substring(sourceDirectory.Length + 1)
                Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))
            Next
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try
    End Sub

End Module

以下示例枚举指定目录中扩展名为“.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;

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

try
    // All .txt files containing the word 'Europe'.
    let files = 
        Directory.EnumerateFiles(@"\\archives1\library\", "*.txt")
        |> Seq.filter(fun file -> file.ToLower().Contains "europe")

    for file in files do
        printfn $"{file}"
    printfn $"{Seq.length files} files found."

with
| :? UnauthorizedAccessException as uaEx ->
    printfn $"{uaEx.Message}"
| :? PathTooLongException as pathEx ->
    printfn $"{pathEx.Message}"
Imports System.IO
Imports System.Linq

Module Module1

    Sub Main()
        Try
            ' LINQ query for all .txt files containing the word 'Europe'.
            Dim files = From file In Directory.EnumerateFiles("\\archives1\library\", "*.txt")
                Where file.ToLower().Contains("europe")

            For Each file In files
                Console.WriteLine("{0}", file)
            Next
            Console.WriteLine("{0} files found.", files.Count.ToString())
        Catch UAEx As UnauthorizedAccessException
            Console.WriteLine(UAEx.Message)
        Catch PathEx As PathTooLongException
            Console.WriteLine(PathEx.Message)
        End Try
    End Sub

End Module

注解

searchPattern 可以是文本和通配符的组合,但它不支持正则表达式。 允许在 中 searchPattern使用以下通配符说明符。

通配符说明符 匹配
*(星号) 该位置的零个或多个字符。
? (问号) 恰好是该位置中的一个字符。

通配符以外的字符是文本字符。 例如, searchPattern 字符串“*t”搜索以字母“t”结尾的所有名称 path 。 字符串 searchPattern “s*”搜索以字母“s”开头的所有名称 path

注意

仅.NET Framework:在 中使用searchPattern星号通配符并指定三字符文件扩展名(例如“*.txt”)时,此方法还会返回扩展名以指定扩展名开头的文件。 例如,搜索模式“*.xls”返回“book.xls”和“book.xlsx”。 仅当搜索模式中使用星号且提供的文件扩展名正好为三个字符时,才会发生此行为。 如果在搜索模式中的某个位置使用问号通配符,则此方法仅返回与指定文件扩展名完全匹配的文件。 下表描述了 .NET Framework 中的此异常。

目录中的文件 搜索模式 .NET 5+ 返回 .NET Framework返回
file.ai、file.aif *。艾 file.ai file.ai
book.xls、book.xlsx *.xls book.xls book.xls、book.xlsx
ello.txt、hello.txt、hello.txtt ?ello.txt hello.txt hello.txt

searchPattern 不能以两个句点结束, (.”) 或包含两个句点 (.”) 后 DirectorySeparatorChar 跟 或 AltDirectorySeparatorChar,也不能包含任何无效字符。 你可以使用 GetInvalidPathChars 方法查询无效字符。

可以使用 参数指定相对路径信息 path 。 相对路径信息解释为相对于当前工作目录的信息,可以使用 方法确定 GetCurrentDirectory 该目录。

EnumerateFilesGetFiles 方法的不同之处如下:使用 EnumerateFiles时,可以在返回整个集合之前开始枚举名称集合;使用 GetFiles时,必须等待整个名称数组返回,然后才能访问数组。 因此,在使用许多文件和目录时, EnumerateFiles 可以更高效。

不缓存返回的集合。 每次对 GetEnumerator 集合上的 调用都会启动一个新的枚举。

适用于