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

Как получить и сохранить список файлов и вложенных папок и сохранить его в текстовый файл. Несколько способов — командная строка, PowerShell и программа.

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

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

Сначала о том, как сделать текстовый документ, содержащий список файлов в нужной папке, вручную.

  1. Запустите командную строку от имени администратора.
  2. Введите cd x:folder где x:folder — полный путь к папке, список файлов из которой нужно получить. Нажмите Enter.
  3. Введите команду dir /a /-p /o:gen >files.txt (где files.txt — текстовый файл, в котором будет сохранен список файлов). Нажмите Enter.
  4. Если использовать команду с параметром /b (dir /a /b /-p /o:gen >files.txt), то в полученном списке будет отсутствовать любая дополнительная информация о размерах файлов или дате создания — только список имен.

Готово. В результате будет создан текстовый файл, содержащий необходимую информацию. В команде выше, данный документ сохраняется в той же папке, список файлов из которой требуется получить. Можно также убрать вывод в текстовый файл, в этом случае список будет отображаться только в командной строке.

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

Кроме этого, для пользователей русскоязычной версии Windows следует учитывать то, что файл сохраняется в кодировке Windows 866, то есть в обычном блокноте вместо русских символов вы увидите иероглифы (но можно использовать альтернативный текстовый редактор для просмотра, например, Sublime Text).

Сохранение списка файлов с помощью командной строки

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

открыть окно команд

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

командная строка

Далее нужно будет ввести одну из этих команд:

dir /b>filelist.txtdir /s>filelist.txt

После ввода «dir» должен быть пробел. Вместо «filelist» может написать свое название файла, только латинскими буквами. Не забудьте в конце добавить формат «.txt».

Эти команды отличаются друг от друга в использовании дополнительных критериев сохранения списка файлов:

  • /b — обозначает, что будут сохранены только имена файлов.
  • /s — обозначает, что дополнительно в список будут включены все файлы и подкаталоги (подпапки), которые находятся в этой папке.

ввод команды

Затем на клавиатуре нажмите на кнопку «Enter».

После этого вы можете открыть папку и увидеть, что в папке находится текстовый файл «filelist». Теперь можете открыть этот файл с помощью Блокнота.

Если в данной папке некоторые файлы имели русские имена, то вместо имен этих файлов, вы увидите непонятные символы (крякозябры). Дело в том, что программа Блокнот не понимает кодировку MS-DOS.

Поэтому, открыть созданный файл, можно будет с помощью программы Word. Предполагаю, что у большинства пользователей, на компьютере установлена данная программа.

Кликните по текстовому файлу правой кнопкой мыши, а затем в контекстном меню выберите пункт «Открыть с помощью». Выберите для открытия файла программу Microsoft Office Word. В окне программы Word будет открыто окно «Преобразование текста», в котором нужно будет выбрать кодировку MS-DOS, которая позволит прочитать этот документ.

На образце вы увидите правильное отображение текста.

преобразование файла

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

Получение списка файлов из папки с помощью -> scandir

Для того, чтобы получить список файлов в паке с помощью scandir, нам потребуется несколько предварительных телодвижений сделать

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

$home = $_SERVER[‘DOCUMENT_ROOT’];

Далее соединим путь на сервере с путем от корневой до файла:

$dir = $home . ‘/__a-data/Z-arhiv/scandir-ili-sodergimoe-v-papke/1/’;

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

$files = scandir($dir);

Выведем список фалой из папки с помощью print_r:

print_r($files);

Соберем весь код вместе:

$home = $_SERVER[‘DOCUMENT_ROOT’];

$dir = $home . ‘/__a-data/Z-arhiv/scandir-ili-sodergimoe-v-papke/1/’;

$files = scandir($dir);

print_r($files);

Получить список файлов в папке

Для получения списка файлов можно воспользоваться методом GetFiles.

Пример поиска файлов:

string[] allfiles = Directory.GetFiles(PathToFolder);foreach (string filename in allfiles){ Console.WriteLine(filename);}

Метод GetFiles может принимать 3 параметра, из которых первый обязательный:

GetFiles(String path, String pattern, SearchOption options)

path – путь к папке, в которой ищем файлы;

pattern – шаблон поиска файлов (например, *.txt или ??abc.doc);

options – способ поиска, указывающий нужно искать только в текущей папке (SearchOption.TopDirectoryOnly) или во вложенных тоже (SearchOption.AllDirectories).

Пример поиска файлов по шаблону смотрите ниже (рекурсивный поиск).

Если список файлов очень большой, тогда лучше воспользоваться методом EnumerateFiles (доступен в .NET Framework 4.0 и выше), т.к. в отличие от GetFiles он возвращает IEnumerable и заполняет его как бы асинхронно, т.е. можно приступить к перебору списка файлов сразу, не дожидаясь получения всего списка и тем самым увеличить скорость обработки полученных файлов.

Метод EnumerateFiles так же может принимать 3 параметра:

path – путь к папке, в которой ищем файлы;

pattern – шаблон поиска файлов;

options – способ поиска.

Пример поиска файлов методом EnumerateFiles:

IEnumerable allfiles = Directory.EnumerateFiles(PathToFolder);foreach (string filename in allfiles){ Console.WriteLine(filename);}

Как видим, поиск методом EnumerateFiles аналогичен GetFiles, однако, он начнется сразу, до получения всего списка файлов, что может быть актуальным при очень большом количестве файлов.

Результат получения списка файлов из папки с помощью scandir

Array

(

[0] => .

[1] => ..

[2] => Elitsin-alkash.html

[3] => Gorbachev-goret-tebe-v-adu.dat

[4] => Gorbachev-predatel.html

[5] => Gorbachev-prodal-rodinu.txt

[6] => Gorbachev-razvalil-SSSR.php

[7] => amerikosyi_kazlyi.txt

[8] => obama_pidurok.html

)

Обратили внимание на две первые ячейки с точками!? → Как избавиться от виртуальных директорий…

Получение списка файлов в папке с помощью bat файла

Один из самых доступных и простых способов получения списка файлов в папке: использование для этого специального bat файла. Существует несколько вариантов создания файла с расширением «.bat», с разным кодом.

Для создания bat файла вам нужно будет открыть Блокнот, а затем вставить туда этот код:

chcp 1251echo %date% %time% >filelist.txtdir /b /d >>filelist.txt

Сохраните этот файл, имя файлу можете дать любое, самому файлу нужно дать расширение «BAT». Параметры сохранения файла в Блокноте будут выглядеть примерно так:

  • Имя файла: filelist.bat
  • Тип файла: Все файлы

После этого нажмите на кнопку «Сохранить».

Далее помещаете созданный файл в ту папку, из которой вы хотите получить, список находящихся там файлов. После этого, запустите файл с расширением «.bat». В данной папке будет создан файл «filelist» в формате «.txt», в котором будет находиться список файлов.

Существует несколько вариантов содержимого файла с расширением «.bat». При использовании этого метода, проблем с кодировкой не возникнет.

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

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

DirLister скачать

Для запуска программы, откройте папку с программой, а потом кликните по приложению DirLister.

В окне программы DirLister, в разделе «Directory To Scan», при помощи кнопки «Open», вам нужно будет выбрать папку для сканирования.

В разделе «Output File», при помощи кнопки «Save As…», вам необходимо будет выбрать место для сохранения списка файлов.

Вы можете уточнить критерии поиска файлов по маске «*.*», выбрав нужное имя или тип файла («TXT», «Excel», «HTML» и т. д.). После выбора необходимых настроек, нажмите на кнопку «Make List».

программа dirlister

После завершения сканирования в левом нижнем углу программы будет выведена информация об успешном завершении создания списка файлов: «All file processed correctly».

Программа DirLister выводит не только список файлов в данной папке, но и дает полную информацию о вложенных в эту папку файлах и папках, в том числе о размере файлов.

С помощью Directory Printer

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

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

Распространяется программка бесплатно, язык интерфейса имеет английский, поддерживает вывод данных непосредственно на принтер.

Скачать Directory Printer: http://www.karenware.com/powertools/ptdirprn.asp

Получаем список файлов в Total Commander

Получить список файлов в папке можно при помощи популярного файлового менеджера Total Commander. Для этого, открываете в окне программы нужную папку.

Вам также может быть интересно:

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

программа total commander

Потом открываете Блокнот или другой текстовый редактор, и вставляете туда список файлов из буфера обмена.

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

Как нумеровать файлы в папке php

Скачать в архиве…
Поскольку по запросу “нумеровать файлы в папке” выходит наша страница “Список файлов в папке php“, то и здесь и напишем!

Сохранение списка файлов в папке в браузере

Получить список файлов в папке можно при помощи браузера. Сначала откройте браузер, а затем перетащите папку в окно браузера. Список файлов будет открыт в окне браузера. Между содержимым можно будет перемещаться как в Проводнике.

Далее можете просто скопировать список файлов в текстовый редактор, сохранить список в HTML файл, или сохранить в PDF при помощи виртуального принтера.

сохранение списка файлов в браузере

Рейтинг
( 1 оценка, среднее 5 из 5 )
Загрузка ...