Directory.EnumerateFiles 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回满足指定条件的完整文件名的可枚举集合。
重载
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
不包含有效模式。
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 该目录。
EnumerateFiles和 GetFiles 方法的不同之处如下:使用 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
不包含有效模式。
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 该目录。
EnumerateFiles和 GetFiles 方法的不同之处如下:使用 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() 方法查询无效字符。
path
为 null
。
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 该目录。
EnumerateFiles和 GetFiles 方法的不同之处如下:使用 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
不包含有效模式。
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 该目录。
EnumerateFiles和 GetFiles 方法的不同之处如下:使用 EnumerateFiles时,可以在返回整个集合之前开始枚举名称集合;使用 GetFiles时,必须等待整个名称数组返回,然后才能访问数组。 因此,在使用许多文件和目录时, EnumerateFiles 可以更高效。
不缓存返回的集合。 每次对 GetEnumerator 集合上的 调用都会启动一个新的枚举。