Учитывая путь к папке (например, C:\Random Folder), как я могу найти файл в нем, который содержит определенное расширение, например txt? Я предполагаю, что мне придется искать *.txt в каталоге, но я не уверен, как я должен начать этот поиск в первую очередь.
Найти файл с определенным расширением в папке
Ответ 1
Посмотрите на класс System.IO.Directory
и статический метод GetFiles
. Он имеет перегрузку, которая принимает путь и шаблон поиска. Пример:
string[] files = System.IO.Directory.GetFiles(path, "*.txt");
Ответ 2
Вы можете использовать Directory класс
Directory.GetFiles(path, "*.txt", SearchOption.AllDirectories)
Ответ 3
Это довольно просто, на самом деле. Вы можете использовать класс 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));
Конечно, есть много вариаций в этой технике. Некоторые из других ответов проще, если ваш фильтр проще. У этого есть преимущество задерживаемого перечисления (если это имеет значение) и более гибкой фильтрации за счет большего количества кода.
Ответ 4
Метод ниже возвращает только файлы с определенным расширением (например: файл с .txt, но не .txt1)
public static IEnumerable<string> GetFilesByExtension(string directoryPath, string extension, SearchOption searchOption)
{
return
Directory.EnumerateFiles(directoryPath, "*" + extension, searchOption)
.Where(x => string.Equals(Path.GetExtension(x), extension, StringComparison.InvariantCultureIgnoreCase));
}
Ответ 5
Как я понимаю, это можно сделать двумя способами:
1) Вы можете использовать класс Directory Class с методом Getfiles и перемещаться по всем файлам, чтобы проверить наше требуемое расширение.
Directory.GetFiles( "your_folder_path) [I].Contains(" *. TXT ")
2) Вы можете использовать Path Class с методом GetExtension, который принимает путь к файлу в качестве параметра и проверяет расширение. Чтобы получить путь к файлу, просто установите условие цикла, которое будет извлекать один файл и возвращать путь к файлу, который можно использовать для проверки.
Path.GetExtension(your_file_path).equals( "JSON" )
Примечание. Оба логики должны находиться внутри условия цикла.
Ответ 6
Используйте этот код для чтения файла со всеми типами файлов расширения.
string[] sDirectoryInfo = Directory.GetFiles(SourcePath, "*.*");