В своей практике мне приходилось писать код, в котором требовалось найти путь к директории при этом зная только часть названия самой директории. Давайте рассмотрим на примере.
Есть у нас каталог, расположенный по пути:
C:\project\packages\PhantomJS.2.1.1
В данном каталоге находится требуемый нам исполняемый файл.
Обратите внимание на цифры в названии каталога. Данные цифры периодически изменяются и в коде программы их жёстко не задашь. Можно этот путь прописать в файле настроек, однако его надо постоянно держать в актуальном состоянии и править.
Как нам поступить в данном случае? Нам надо сделать так, чтобы программа не привязывалась к цифрам в названии каталога. Далее напишем код, который нам позволит постоянно и верно определять путь к исполняемому файлу, даже если цифры (версия) в названии каталога будут меняться ежечасно. При этом мы будем исходить из того, что у нас только один каталог «PhantomJS».
using System.IO; string dirWork = "C:\project\packages"; //исходный рабочий каталог string dirPhantom = null; //каталог, в котором находится исполняемый файл string[] dirsAll = Directory.GetDirectories(dirWork, "PhantomJS*"); // получаем список/массив всех поддиректорий рабочего каталога, которые начинаются на "PhantomJS" dirPhantom = dirsAll[0]; // так как директория "PhantomJS" одна, поэтому берём первую и единственную ссылку из массива // dirPhantom == "C:\project\packages\PhantomJS.2.1.1"
Вот и весь код для определения пути к каталогу, который постоянно изменяет окончание своего названия.
как Записать полный путь к каталогу «system»?
Подключаем:
В методе пишем:
Получим (в моём случае):