http://blog.csdn.net/limlimlim/article/details/8260911 转载
https://msdn.microsoft.com/zh-cn/library/wz42302f.aspx
第一种方式
System.IO.Directory.GetFiles()获取多个类型格式的文件 System.IO.Directory.GetFiles(“c:\”,”(*.exe|*.txt)”);
第二种方式
var files = Directory.GetFiles(“C:\\path”, “*.*”, SearchOption.AllDirectories) .Where(s => s.EndsWith(“.mp3”) || s.EndsWith(“.jpg”));
但这种写法应该只有VS2008才支持,VS2005不支持
Directory.GetFiles 方法 (String, String)
返回指定目录中与指定的搜索模式匹配的文件的名称(包含其路径)。
命名空间: System.IO
程序集: mscorlib(位于 mscorlib.dll)
public static string[] GetFiles( string path, string searchPattern )
参数
-
path
-
Type: System.String
要搜索的目录的相对或绝对路径。 此字符串不区分大小写。
-
searchPattern
-
Type: System.String
要与 path 中的文件名匹配的搜索字符串。 此参数可以包含有效的文本路径和通配符(* 和 ?) 字符(请参阅备注),但不支持正则表达式。
返回值
Type: System.String[]
指定目录中与指定的搜索模式匹配的文件的完整名称(包含路径)的数组;如果未找到任何文件,则为空数组。
Exception | Condition |
---|---|
IOException |
path 是文件名。 – 或 – 发生了网络错误。 |
UnauthorizedAccessException |
调用方没有所要求的权限。 |
ArgumentException |
path 为长度为零的字符串,仅包含空格,或包含一个或多个无效字符。 可以通过使用 GetInvalidPathChars 查询无效的字符。 – 或 – searchPattern 不包含有效的模式。 |
ArgumentNullException |
path 或 searchPattern 为 null。 |
PathTooLongException |
指定的路径和/或文件名超过了系统定义的最大长度。 例如,在基于 Windows 的平台上,路径必须少于 248 个字符,且文件名必须少于 260 个字符。 |
DirectoryNotFoundException |
指定的路径未找到或无效(例如,它在未映射的驱动器上)。 |
返回的文件名追加到提供 path 参数和返回的文件名的顺序不能保证; 使用 Sort 方法是否需要特定的排序顺序。
searchPattern 可以是文本和通配符的组合字符,但不支持正则表达式。 在允许使用下列通配符说明符 searchPattern。
通配符说明符 |
匹配 |
---|---|
*(星号) |
在该位置的零个或多个字符。 |
? (问号) |
在该位置的零个或一个字符。 |
该通配符以外的字符是原义字符。 例如, searchPattern 字符串”* t”中的所有名称搜索 path 以字母”t”结尾。 searchPattern 字符串”s *”中的所有名称搜索 path 以字母”s”开头。
searchPattern 不能以两个句点结尾 (“…”) 或包含两个句点 (“…”) 跟 DirectorySeparatorChar 或 AltDirectorySeparatorChar, ,也不可以包含任何无效字符。 你可以使用 GetInvalidPathChars 方法查询无效字符。
说明 |
---|
当使用中的星号通配符字符 searchPattern 例如”*.txt”中指定的扩展的字符数将影响的搜索,如下所示︰
当使用问号通配符字符时,此方法将返回与指定的文件扩展名匹配的文件。 例如,在目录中,搜索模式的给定两个文件、”file1.txt”和”file1.txtother”,”文件?。txt”返回只是第一个文件,而”file*.txt”的搜索模式返回这两个文件。 |
说明 |
---|
此方法检查针对 8.3 文件名格式和长文件名的格式文件的名称,因为的搜索模式类似于”* 1*.txt”可能会返回意外的文件的名称。 例如,使用的搜索模式”* 1*.txt”返回”longfilename.txt”,因为等效 8.3 文件名格式是”LONGFI~1.TXT”。 |
EnumerateFiles 和 GetFiles 方法的行为有所不同,如下所示︰ 当您使用 EnumerateFiles, ,您可以开始之前,则返回整个集合枚举名称的集合; 当您使用 GetFiles, ,您必须等待的名称,然后才能访问该数组要返回的整个数组。 因此,当您使用多个文件和目录、 EnumerateFiles 可能会更有效。
path 参数可以指定相对或绝对路径信息。 相对路径信息被解释为相对于当前工作目录。 若要获取当前工作目录,请参阅 GetCurrentDirectory。
path 参数不区分大小写。
通用 I/O 任务的列表,请参阅 通用 I/O 任务。
下面的示例计算指定的字母开头的文件数。
using System;
using System.IO; class Test { public static void Main() { try { // Only get files that begin with the letter "c." string[] dirs = Directory.GetFiles(@"c:\", "c*"); Console.WriteLine("The number of files starting with c is {0}.", dirs.Length); foreach (string dir in dirs) { Console.WriteLine(dir); } } catch (Exception e) { Console.WriteLine("The process failed: {0}", e.ToString()); } }
转载于:https://www.cnblogs.com/TJessica/p/6344590.html
今天的文章Directory.GetFiles分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/72828.html