Учитывая путь к папке (например, C:\Random Folder
), как я могу найти в нем файл с определенным расширением, например txt
? Я предполагаю, что мне нужно будет выполнить поиск *.txt
в каталоге, но я не уверен, как я должен начать этот поиск в первую очередь.
93
macos.txt
Вы можете использовать класс Directory
Directory.GetFiles(path, "*.txt", SearchOption.AllDirectories)
источник
На самом деле это довольно просто. Вы можете использовать этот
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));
Конечно, есть много вариаций этой техники. Некоторые другие ответы будут проще, если ваш фильтр будет проще. У этого есть преимущество отложенного перечисления (если это имеет значение) и более гибкой фильтрации за счет большего количества кода.
источник
Приведенный ниже метод возвращает только файлы с определенным расширением (например: файл с .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)); }
источник
Насколько я понимаю, это можно сделать двумя способами:
1) Вы можете использовать класс каталога с методом Getfiles и просматривать все файлы, чтобы проверить наше необходимое расширение.
2) Вы можете использовать класс пути с методом GetExtension, который принимает путь к файлу в качестве параметра и проверяет расширение. Чтобы получить путь к файлу, просто имейте условие цикла, которое будет извлекать один файл и возвращать путь к файлу, который может использоваться для проверки.
Примечание. Обе логики должны находиться в состоянии цикла.
источник
Используйте этот код для чтения файла со всеми типами файлов расширения.
string[] sDirectoryInfo = Directory.GetFiles(SourcePath, "*.*");
источник