我有一个对应于变量“ 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"));
预先感谢您的帮助
答案 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]);
}