Найдите файл с определенным расширением в папке

Учитывая путь к папке (как C:\Random Folder), как я могу найти файл в нем, как который содержит определенное расширение, txt? Я предполагаю, что должен буду сделать поиск *.txt в каталоге, но я не уверен, как я, как предполагается, запускаю этот поиск во-первых.

89
задан Samuel Rondeau-Millaire 12 June 2018 в 21:40
поделиться

3 ответа

Посмотрите на класс System.IO.Directory и статический метод GetFiles . У него есть перегрузка, которая принимает путь и шаблон поиска. Пример:

 string[] files = System.IO.Directory.GetFiles(path, "*.txt");
165
ответ дан 24 November 2019 в 07:14
поделиться

На самом деле это довольно просто. Вы можете использовать класс System.IO.Directory вместе с System.IO.Path . Что-то вроде (использование LINQ делает это еще проще):

var allFilenames = Directory.EnumerateFiles(path).Select(p => Path.GetFileName(p));

// Get all filenames that have a .txt extension, excluding the extension
var candidates = allFilenames.Where(fn => Path.GetExtension(fn) == ".txt")
                             .Select(fn => Path.GetFileNameWithoutExtension(fn));

Конечно, есть много вариаций этой техники. Некоторые другие ответы будут проще, если ваш фильтр будет проще. У этого есть преимущество отложенного перечисления (если это имеет значение) и более гибкой фильтрации за счет большего количества кода.

14
ответ дан 24 November 2019 в 07:14
поделиться

Вы можете использовать Directory класс

 Directory.GetFiles(path, "*.txt", SearchOption.AllDirectories)
27
ответ дан 24 November 2019 в 07:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: