Как получить полный путь из сегмента пути и имя файла в c# - PullRequest
0 голосов
/ 21 марта 2020

Предположим, я забыл полный путь к файлу на моем компьютере, но я помню имя файла и сегмент пути.

пример:

  • мое имя файла - test, а сегмент пути, который я запомнил, - \test1\test2

Так что я бы хотел чтобы получить полный путь с c#, вот так: C:\test1\test2\test3\test4\test.txt

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 21 марта 2020

Если сегмент, который вы знаете, находится в начале пути, вы можете сделать что-то вроде

DirectoryInfo f = new DirectoryInfo(@"C:\test1\test2");
var results = f.GetFiles("test.txt", SearchOption.AllDirectories);

Если нет, я боюсь, что вы должны выполнить полный поиск на компьютере, и проверьте, содержит ли путь к вашему фрагменту.

1 голос
/ 21 марта 2020

Вы можете go просмотреть все файлы на диске и проверить, соответствуют ли они тому, что вы хотите: (Это будет медленно и потребляет много ресурсов.)

var files = Directory.GetFiles(@"C:\", "test.txt", SearchOption.AllDirectories)
                     .Where(s => s.Contains(@"\test1\test2\"));
foreach (var f in files)
{
    Console.WriteLine(f);
}

Или вы знаете root каталог, в котором вы хотите искать, вы можете изменить его так, чтобы он был быстрее:

var files = Directory.GetFiles(@"C:\test1\test2", "test.txt", SearchOption.AllDirectories);
foreach (var f in files)
{
    Console.WriteLine(f);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...