Как получить список всех файлов в папке в C#?

Автор: · Опубликовано 06.03.2017 · Обновлено 16.01.2018

1441348757_cropped-w220-h220-1.png

Основная задача: Получаем список файлов в папке.

Zennoposter

Как реализовать в zennoposter это кубиками , да просто!Так же мы можем использовать фильтр по маске и искать в поддиректориях.Но не всегда это удобно и если сделать кубиками такие запросы скажем 50 раз то каждый займет около 3 сек, ну дальше математика. 1439457087_rplo1fpk.pngВстает само собой разумеется вопрос о C# как реализовать.

 Snippets

Решение: Для решения задачи будем использовать метод GetFiles(). Метод имеет несколько реализаций и поможет получить список файлов в папке, используя шаблоны, например, если надо получить список файлов отпределенного типа. Приведем небольшой код как это сделать:Простое получение файлов из папки1. Просто получить список всех файлов в папке:Например нам необходимо получть все файлы в папке «C:folder», для этого делаем так:2.Получить список файлов определенного типаНапример, мы хотим отобрать всё флэшвидео в папке — это формат .flv. Для этого пишем такую конструкцию3. Получить список всех файлов, включая подпапкиЕсли стоит задача извлечь все файлы ни только из папки, но и из подпапок, то используем следующую конструкциюПо умолчанию процедура GetFiles() выдаёт имя файла в формате «имя_файла.расширение», но если вам надо получить полный путь до файлов в папке, то необходимо прибегать к хитростям, опишем пару примеров:1. Получить полные пути до файлов в папкеДля решения этой задачи используем следующую конструкцию: Удобство состоит в скорости исполнения запроса , в удобстве если остальная часть на С#.

Купить zennoposter можно здесь ! Если Вам необходим проект вы можете заказать его у меня.

ДомойЯзыки программирования и собственно написание компьютерных программЯзык программирования C#Как получить список всех файлов в папке в C#?

Как получить список всех файлов в папке в C# и открыть каждую из них?

Итак, перед нами стоит задача получить список всех файлов и директорий, которые находятся в определенной папке жесткого диска компьютера. Далее мы можем открыть по-очереди все входящие в данную папку файлы определенного формата, например, текстовые файлы. Получение списка всех файлов не трудная задача. Для этого нам понадобится метод Directory.GetFiles и переменная, куда мы сохраним список всех файлов. Для этого блестяще может подойти массив из string`ов или List.

Получение списка всех файлов в папке

Ниже приведены две команды, с помощью которых мы можем получить список всех файлов в папке. Различие между ними только в методе представления полученной информации. Так, первая строчка сохраняет список файлов в массив, а вторая строчка в List.

[code language=»csharp»]string[] filesname = Directory.GetFiles(@»путь к папке»); List filesname = Directory.GetFiles(@»путь к файлу»).ToList();[/code]

Получение списка всех файлов определенного формата

В приведенном ниже примере мы получим список только тех файлов, которые соответствуют заданному формату. В примере мы пытаемся достучаться до всех текстовых файлов формата .txt.

[code language=»csharp»]string[] files2 = Directory.GetFiles(@»путь к папке», «*.txt»); List filesname = Directory.GetFiles(@»путь к папке»,»*.txt»).ToList();[/code]

Как открыть по-очереди все файлы из папки?

Теперь, когда мы получили список всех файлов в папке, мы можем продолжить работу с ними. Например, нам может понадобиться получить список всех текстовых файлов в папке, чтобы затем по-очереди открыть каждый из них и выполнить какую-то операцию с его содержимым:

[code language=»csharp»]List files1 = Directory.GetFiles(@»путь к папке»,»*.txt»).ToList(); foreach (var s in files1) { StreamReader sr = new StreamReader(s); //открыли для файл чтения // дальше следует Ваш код } [/code]

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

Публикации  »  C#, C++Бесплатный хостинг + SSL-сертификат

Зарегистрируйте домен и получите 2 месяца бесплатного хостинга и SSL-сертификат на 1 год в подарок

Программирование на С, С++

C/C++. Структурное и объектно-ориентированное программирование: практикум

Программирование на С++ глазами хакера

Программирование на C++ в примерах и задачах

C/C++. Процедурное и объектно-ориентированное программирование. Учебник для вузов

Посмотреть все книги по программированию

Вопрос от пользователя

Здравствуйте.

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

Это серьезно бы облегчило поиск и подключение нужного диска.

Доброго дня!

Эту задачу можно решить несколькими способами (несмотря на то, что я ниже приведу универсальные варианты — в зависимости от вашей версии Windows, часть из них может не сработать…). Так что проверяйте сразу несколько из них… 👌

*

Способы получить список имен файлов

Вариант 1 (с помощью Total Commander)

Наиболее простой и предпочтительный вариант (к тому же точно работающий во всех версиях ОС) — воспользоваться помощью 👉 Total Commander (ссылка на офиц. сайт). Если кто не знает — это спец. программа для работы с файлами (альтернатива проводнику).

Запустив Total Commander, перейдите в нужный каталог (в тот, где у вас хранятся фильмы, например) и выделите все файлы (для этого достаточно нажать Ctrl+A).

Выделяем все файлы в нужном каталоге

Далее в меню «Выделение» выберите опцию «Сохранить выделение в файл…» (в некоторых версиях программы есть возможность скопировать имена файлов в буфер — если сделаете так, то потом откройте документ Word и вставьте список, нажав Ctrl+V).

Сохранить выделение в файл (Total Commander)

Собственно, полученный текстовый файл можно открыть в любом блокноте (я использую Notepad++), ну и после распечатать список (Ctrl+P) … 👌

Текстовый файл можно открывать — список готов!

*

Вариант 2 (через браузер)

Для этого нам понадобиться запустить какой-нибудь современный 👉 браузер (я проверял на Chrome и Firefox).

После откройте проводник и перейдите в папку с нужными вам файлами — нужно будет скопировать путь до нее, нажать сочетание Ctrl+C (адрес, вида: «C:UsersalexVideosФильмы»)

Открываем каталог

После, вставить этот скопированный «путь» в адресную строку браузера и нажать Enter. В результате вы увидите, что обозреватель покажет вам список всех файлов и дату последнего изменения.

Теперь достаточно выделить всё нужное на странице и скопировать это (👇).

Открываем путь в Chrome

Затем скопированный список лучше всего вставить (сочетание Ctrl+V) в Excel (или 👉 его аналоги). Это удобнее тем, что в Excel вы легко сможете удалить ненужные вам столбики (с датой, например) …

Вставляем список в Excel для дальнейшей работы…

*

Вариант 3 (список со вложенными файлами и папками)

Этот способ универсальный, и к тому же позволяет получить не только список файлов из текущего каталога, но и из всех вложенных.

Например, есть у вас в каталоге «Видео» отдельная папка «Кино 90-х», в которой 2 десятка др. фильмов — вышеперечисленные способы бы не позволили узнать их название (из полученного списка), а этот позволит!

Для работы нам понадобиться 👉 командная строка (ничего сложного там не будет!).

В ней нужно последовательно ввести две команды, после каждой нажать Enter:

  1. cd C:UsersalexVideosФильмы(вместо «C:UsersalexVideosФильмы» укажите свой каталог);
  2. dir /b /s | sort > List.txt(эта команда создаст файл «List.txt» в выбранной вами папке со всеми файлами и каталогами, что в нем есть! Кроме этого, она отсортирует список от А к Я).

CMD — открываем каталог, получаем список

Файл-список готов!

Кстати, если в списке файлов вам среди названия фильмов (файлов) не нужен их путь — то его легко убрать. Для этого в Notepad++ достаточно:

  • нажать на Ctrl+F;
  • в окне «Замена» в строку «найти» указать путь (который повторяется в каждой строке);
  • в строке «Заменить на» проверить, чтобы была пустота;
  • и нажать кнопку «заменить все». В результате: в вашем списке будут только имена (без пути)!

Убираем путь до каталога в блокноте

*

Вариант 4 (без доп. софта)

Этот способ работает не во всех версиях ОС Windows (в 10-ке все OK). Зато он быстрый и не требует вообще никакого доп. софта…

Что делать:

  1. зайти в нужный каталог;
  2. выделить файлы (Ctrl+A);
  3. зажать клавишу Shift (левую);
  4. нажать ПКМ (правую кнопку мыши), не отпуская Shift;
  5. из появившегося меню проводника выбрать опцию «Копировать как путь». Теперь в буфере обмена есть все имена файлов из каталога!

Выделяем и копируем путь

Теперь можно открыть блокнот или тот же Word и вставить список (Ctrl+V).

Вставляем скопированный список

Если вам мешает в каждой строке путь («C:Users») — то как его убрать см. чуть выше.

На этом, думаю, задача решена!? 😉

*

Дополнения по теме приветствуются!

Удачи!

👣

RSS  (как читать Rss)

Другие записи:

  • Какой максимальный объем оперативной памяти можно установить на компьютер / ноутбук
  • Как отформатировать жесткий диск: способы
  • Как сделать арт из фото: создание рисунка из фотографии онлайн!
  • Чем лучше смотреть картинки в Windows: программы для просмотра изображений и фото 👀
  • Нет русской раскладки на телефоне, как ее настроить — руссифицировать (на примере HUAWEI honor)
  • Виртуальная Windows XP/7/10 без скачивания спец. софта (настраиваем встроенный Hyper-V в ОС Windows …
  • «Современная» приставка Dendy: один день ностальгии в «Марио», «Танчики», «Мотокросс» (или как …
  • Ускорение игр: лучшие программы и утилиты

Автор: Igor Kirsanov

C# список файлов в папке можно получить используя функцию DirectoryInfo.

Для удобства импортируем в пространство имен System.IO

using System.IO;

Теперь нужно создать новую копию DirectoryInfo в которой будет храниться список файлов.

  DirectoryInfo dir = new DirectoryInfo(@"d:temp");    // Для извлечения имени файла используется цикл foreach и свойство files.name  foreach(FileInfo files in dir.GetFiles()){           Console.Write(files.Name);        }  

Получить список файлов в папке с определенным расширениям на C# можно указав расширение для получаемых файлов, например dir.GetFiles(«*.html»)

Не часто, но все же требуется отобразить список файлов без расширения. В этом случае вместо files.Name нужно использовать Path.GetFileNameWithoutExtension(files.FullName)Используемые источники:

  • https://artstroy.net/poluchaem-spisok-fajlov-v-papke-s/
  • http://about-windows.ru/programmirovanie/programmirovanie-c/kak-poluchit-spisok-vsex-fajlov-v-papke-v-c/
  • http://www.codernotes.ru/articles/c-c/poluchit-spisok-fajlov-i-papok-na-c.html
  • https://ocomp.info/poluchit-spisok-faylov.html
  • https://xn--80afqpaigicolm.xn--p1ai/csharp/csharp-poluchit-spisok-failov-v-directorii/

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий