使用searchPattern搜索特定的文件或文件夹

Directory类的GetDirectories和GetFiles方法都有三个重载函数,两者签名也类似:

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

其中:
path为要搜索的路径;
searchPattern表示与path中文件名/文件夹名相匹配的字符串,可带*和?通配符;
searchOption是一个枚举类型,指定搜索操作应包括所有子目录还是仅包括当前目录,值有AllDirectories和TopDirectoryOnly;

显然,如果我们要搜索特定的文件或文件夹,主要就是利用searchPattern签名来实现:

foreach (string item in Directory.GetDirectories(Directory.GetCurrentDirectory(), "*floder"))
{
    Response.Write(item + "<br/>");
}
foreach (string item in Directory.GetFiles(Directory.GetCurrentDirectory(), "*.aspx"))
{
    Response.Write(item + "<br/>");
}

说明:

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

以下列表显示了 searchPattern 参数的不同长度的行为:

"*.abc"返回扩展名为 .abc、.abcd、.abcde、.abcdef 等的文件。
"*.abcd"仅返回扩展名为 .abcd 的文件。
"*.abcde"仅返回扩展名为 .abcde 的文件。
"*.abcdef"仅返回扩展名为 .abcdef 的文件。

上一篇: C#读写文本文件小结
下一篇: 去掉桌面文字背景色
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
最新日志:
评论: 0 | 引用: 0 | 查看次数: 4914
发表评论
登录后再发表评论!