Поиск пути к файлу в C # - PullRequest
0 голосов
/ 29 января 2011

Мне нужно получить доступ к файлу, созданному в произвольном месте в каталоге %temp%, например, по следующему пути:

%temp%/[FSF480-3R3RC3-RDDWW-32FDF-3FD3E-]/files/test.txt

Может кто-нибудь сказать мне, как искать и вернуть путь к 'test.txt', чтобы я мог открыть его для чтения данных из него?

Спасибо.

Ответы [ 3 ]

3 голосов
/ 29 января 2011

Directory.EnumerateFiles позволит вам искать файлы, которые соответствуют шаблону по определенному пути, при необходимости ища подкаталоги.На связанной странице MSDN показано использование.

Очень похожий вопрос здесь , где предлагается использовать Directory.GetFiles с рекурсивной опцией.

Directory.GetFiles(Path.GetTempPath(), "test.txt", SearchOption.AllDirectories) 

Используйте GetFiles(), если вы ищете мало результатов, EnumerateFiles(), если вы ищете много.

Методы EnumerateFiles и GetFiles отличаются следующим образом: Когдавы используете EnumerateFiles, вы можете начать перечисление коллекции имен до того, как будет возвращена вся коллекция;когда вы используете GetFiles, вы должны подождать, пока весь массив имен будет возвращен, прежде чем вы сможете получить доступ к массиву.Поэтому, когда вы работаете со многими файлами и каталогами, EnumerateFiles может быть более эффективным.

0 голосов
/ 29 января 2011

метод GetCreationTime может дополнительно помочь вам определить правильную папку после использования GetDirectories (см. Пост Одеда) - я не знаю, есть ли у вас какая-либо информация об имени каталога, если вы это делаетеможет быть полезно использовать их комбинацию.

0 голосов
/ 29 января 2011

Вы можете начать с использования Directory.GetDirectories для рекурсивного поиска по дереву каталогов и Directory.GetFiles для вывода списка файлов в каждом.

Это должнопозволяют найти файл.

См. в этом пошаговом руководстве на сайте поддержки Microsoft.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...