c#:查找名称中具有可变部分的文件

时间:2019-02-06 16:19:02

标签: c# system.io.file system.io.directory

我有一个对应于变量“ path”的文件夹位置。 在此文件夹中,我有很多文件,但是只有一个名为“ common.build.9897ytyt4541”的文件。我想做的就是读取此文件的内容,因此,有了下面的内容,它就可以工作了:

string text = File.ReadAllText(Path.Combine(path, "common.build.9897ytyt4541.js"));

问题是,“ build”和“ js”之间的部分在每次源代码编译时都会更改,并且我得到了一个新的哈希,因此我想替换之前的代码,以使每个代码都能正常工作构建,无论哈希是什么,我都想使用正则表达式,但这不起作用:

string text = File.ReadAllText(Path.Combine(path, @"common.build.*.js"));

预先感谢您的帮助

2 个答案:

答案 0 :(得分:2)

如果您只找到一个文件,则可以编写如下内容(加上错误处理):

using System.Linq;
...
var filePath = Directory.GetFiles(path, "common.build.*.js").FirstOrDefault();
string text = File.ReadAllText(filePath);

答案 1 :(得分:1)

否,您需要使用File.ReadAllText来使用确切的文件名。相反,您需要搜索文件,为此,您可以使用Directory.GetFiles,例如:

var matches = Directory.GetFiles(path, "common.build.*.js");

if(matches.Count() == 0)
{
    //File not found
}
else if(matches.Count() > 1)
{
    //Multiple matches found
}
else
{
    string text = File.ReadAllText(matches[0]);
}