System.IO.Directory.GetFiles 方法 (String, String, SearchOption)

方法描述

返回指定目录中与指定的搜索模式匹配的文件的名称(包含它们的路径),并使用一个值以确定是否搜索子目录。

语法定义(C# System.IO.Directory.GetFiles 方法 (String, String, SearchOption) 的用法)

public static string[] GetFiles(
	string path,
	string searchPattern,
	SearchOption searchOption
)

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
path System-String 要搜索的目录。
searchPattern System-String 要与 path 中的文件名匹配的搜索字符串。此参数不能以两个句点(“..”)结束,不能在 DirectorySeparatorChar 或 AltDirectorySeparatorChar 的前面包含两个句点(“..”),也不能包含 InvalidPathChars 中的任何字符。
searchOption System-IO-SearchOption SearchOption 值之一,指定搜索操作应包括所有子目录还是仅包括当前目录。
返回值 System.String[] 一个 String 数组,它包含指定目录中与指定搜索模式匹配的文件的名称。 文件名包含完整路径。

提示和注释

文件名包含完整路径。

如果不存在文件,或不存在与 searchPattern 参数匹配的文件,此方法将返回一个空数组。

返回文件的名称顺序无法保证;如果需要特定排序顺序,请使用 Sort() 方法。

在 searchPattern 参数中允许使用以下通配说明符。

通配符

说明

*

零个或多个字符。

?

正好零个或一个字符。

通配说明符以外的字符表示它们自己。 例如,searchPattern 字符串“*t”搜索 path 参数中所有以字母“t”结尾的名称。 searchPattern 字符串“s*”搜索 path 中所有以字母“s”开头的名称。

注意

在 searchPattern 中使用星号通配符时(如“*.txt”),扩展名长度正好为三个字符时的匹配行为与扩展名长度多余或少于三个字符时的匹配行为不同。 文件扩展名正好是三个字符的 searchPattern 将返回扩展名为三个或更多字符的文件,其中前三个字符与 searchPattern 中指定的文件扩展名匹配。 文件扩展名为一个、两个或三个以上字符的 searchPattern 仅返回扩展名长度正好与 searchPattern 中指定的文件扩展名匹配的文件。 使用问号通配符字符时,此方法仅返回与指定文件扩展名匹配的文件。 例如,假设目录下有两个文件“file1.txt”和“file1.txtother”,使用“file?.txt”搜索模式时只返回第一个文件,而使用“file*.txt”搜索模式时会同时返回这两个文件。

注意

因为此方法仅检查同时具有 8.3 文件名格式和长文件名格式的文件,类似“*1*.txt”的搜索模式可能会返回意外的文件名。 例如,使用“*1*.txt”的搜索模式将返回“longfilename.txt”,因为等效的 8.3 文件格式为“LONGFI~1.TXT”。

允许 path 参数指定相对或绝对路径信息。 相对路径信息被解释为相对于当前工作目录。 若要获取当前工作目录,请参见 GetCurrentDirectory。

path 参数不区分大小写。

有关通用 I/O 任务的列表,请参见通用 I/O 任务。

System.IO.Directory.GetFiles 方法 (String, String, SearchOption)例子


异常

异常 异常描述
ArgumentException
  • path 是一个零长度字符串,仅包含空白或者包含一个或多个由 InvalidPathChars 定义的无效字符。
  • searchPattern 不包含有效模式。
ArgumentNullException path 或 searchpattern 为 null。
ArgumentOutOfRangeException searchOption 不是有效的 SearchOption 值。
UnauthorizedAccessException 调用方没有所要求的权限。
DirectoryNotFoundException 指定的路径无效(例如,它位于未映射的驱动器上)。
PathTooLongException 指定的路径、文件名或者两者都超出了系统定义的最大长度。 例如,在基于 Windows 的平台上,路径必须小于 248 个字符,文件名必须小于 260 个字符。
IOException
  • path 是一个文件名。
  • 发生了网络错误。

命名空间

namespace: System.IO

程序集: mscorlib(在 mscorlib.dll 中)

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。