按包含星号符号的路径读取文本文件

时间:2015-09-07 22:40:58

标签: c# .net

我需要阅读所有符合C:\Workspace\MyProject\MyApp\*\*core.*路径的文件。怎么做? .NET中是否有任何库来处理这种情况?类似的东西:

string[] allPaths = GetAllPaths("C:\Workspace\MyProject\MyApp\*\*core.*");
var result = new List<string>();

foreach (var path in allPaths)
{
    foreach (var line in File.ReadLines(path))
    {   
        result.Add(line);
    }
}

return result; // Here we go

怎么做?

2 个答案:

答案 0 :(得分:2)

你可以考虑

string[] files = Directory.GetFiles(
    @"C:\Workspace\MyProject\MyApp",
    "*core.*",
    SearchOption.AllDirectories
);

但要注意*/? - 模式可能带来意想不到的结果。请参阅documentation末尾的备注

答案 1 :(得分:0)

https://msdn.microsoft.com/en-us/library/ms143316(v=vs.110).aspx

Directory.GetFiles方法的这种重载可能会让你想要的。

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

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

通配符说明符是*(星号),它匹配零个或多个字符(?(问号)匹配零个或一个字符)。

所以你可以使用&#34; C:\ Workspace \ MyProject \ MyApp \&#34;,&#34; * \ * core。*&#34;和SearchOption.AllDirectories。