c #: найти файл с переменной частью в его имени - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть папка, соответствующая переменной «путь».В этой папке у меня много файлов, но только один называется "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 голосов
/ 06 февраля 2019

Нет, вам нужно использовать точное имя файла с помощью 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]);
}
0 голосов
/ 06 февраля 2019

Если вы знаете, что вы найдете только один файл, вы можете написать что-то вроде этого (плюс обработка ошибок):

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