Каталог расширений

Популярные теги

3gp       avi       fb2       jpg       mp3       pdf      

Как вывести список файлов в папке


Пять простых способов получить список файлов и папок в Windows 10

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

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

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

Для чтения содержимого каталогов в старой доброй командной строке предусмотрена команда dir, её то как раз мы и будем использовать. Итак, запускаем консоль CMD, командой cd Буква диска:/путь (если нужно перейти в другой диск, добавляем после cd ключ /d) переходим в нужное расположение и выполняем эти две команды:

chcp 1251
 dir /b /s > D:\filelist.tхt

Первая команда устанавливает кириллическую кодировку, вторая сохраняет список всех файлов, папок и вложенных в них объектов в текстовый лог на диске D.

Если нужно получить список только файлов (без вложенных каталогов), достаточно использовать только ключ /b.

Примечание: в Windows 8.1 и 7 для быстрого перехода в папку в командной строке, зажмите Shift, кликните ПКМ по папке и выберите в контекстном меню опцию «Открыть окно команд».

Список файлов и папок в PowerShell

В Windows 10 командная строка заменена консолью PowerShell, для получения списка файлов можете использовать её. Для примера выведем в файл содержимое папки Тест с её подкаталогами:

Get-Childitem -Path D:\Тест -Recurse | Out-File D:\filelist.tхt

А можно и проще. Зажав Shift, кликаем по папке ПКМ, выбираем в меню «Открыть PowerShell здесь».

И выполняем в открывшемся окне консоли команду Get-Childitem -Recurse | Out-File D:\filelist.tхt.

Необходимость использования параметра -Path с указанием пути в данном случае отпадает.

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

Этот способ позволяет получить список либо файлов, либо папок в конкретном расположении. Заходим в целевую папку, выделяем в ней все файлы или папки, зажимаем Shift, кликаем правой кнопкой мыши и выбираем в меню опцию «Копировать как путь».

Пути и имена выделенных объектов будут переданы в буфер обмена, откуда вы уже сможете перенести их в текстовый файл.

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

Для получения хорошо структурированного списка объектов файловой системы можно воспользоваться бесплатной портативной утилитой DirLister, скачав её с официального сайта:

www.barrysoft.it/blog/software/dirlister

Запустив утилиту, укажите в разделе «Directory To Scan» путь к сканируемому каталогу или диску, в разделе «Output File» выберите расположение для сохранения списка.

Здесь же можно задать параметры сканирования — выбрать формат, указать, нужно ли включать в список вложенные директории и скрытые объекты, задать поиск по маске. После нажатия кнопки «Make List» список будет сохранён в выбранном расположении.

Используем для получения списка файлов браузер

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

Рекурсивно пройтись по всем вложенным каталогам, правда, не получится да и для копирования путей и имён файлов и переноса их в отдельный файл придется использовать Ctrl + C и Ctrl + V.

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

&nbsp windows

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

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

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

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

  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).

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

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

Примеры команд:

  • Get-Childitem -Path C:\Folder — вывод списка всех файлов и папок, находящихся в папке Folder на диске C в окне Powershell.
  • Get-Childitem -Path C:\Folder | Out-File C:\Files.txt — создание текстового файла Files.txt со списком файлов в папке Folder.
  • Добавление параметра -Recurse к первой описанной команде выводит в списке также содержимое всех вложенных папок.
  • Параметры -File и -Directory позволяют получить список только файлов или только папок соответственно.

Выше перечислены далеко не все параметры Get-Childitem, но в рамках описываемой в этом руководстве задачи, думаю, их будет достаточно.

Утилита Microsoft Fix it для печати содержимого папки

На странице https://support.microsoft.com/ru-ru/kb/321379 присутствует утилита Microsoft Fix It, добавляющая в контекстное меню проводника пункт «Print Directory Listing», выводящий список файлов в папке на печать.

Несмотря на то, что программа предназначена только для Windows XP, Vista и Windows 7, она успешно сработала и в Windows 10, достаточно было запустить ее в режиме совместимости.

Дополнительно, на той же странице показан порядок ручного добавления команды вывода списка файлов в проводник, при этом вариант для Windows 7 подойдет и для Windows 8.1 и 10. А если вам не требуется вывод на печать, вы можете немного подправить предлагаемые Microsoft команды, удалив параметр /p в третьей строке и полностью убрав четвертую.

А вдруг и это будет интересно:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 chcp 1251 echo %date% %time% >filelist.txt dir /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».

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

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

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

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

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

Заключение

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

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

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

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

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

Заключение

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

Список файлов в папке

Иногда бывает необходимо заполучить на лист Excel список файлов в заданной папке и ее подпапках. В моей практике такое встречалось неоднократно, например:

  • перечислить в приложении к договору на проведение тренинга список файлов из раздаточных материалов для особо щепетильных юристов в некоторых компаниях
  • создать список файлов для ТЗ проекта
  • сравнить содержимое папок (оригинал и бэкап, например)

Для реализации подобной задачи можно использовать несколько способов.

Способ 1. Скелет из шкафа - функция ФАЙЛЫ

Этот способ использует древнюю функцию ФАЙЛЫ (FILES), оставшуюся в Microsoft Excel с далеких девяностых. Вы не найдете эту функцию в общем списке функций, но для совместимости, она всё ещё остаётся внутри движка Excel, и мы вполне можем её использовать.

Механизм таков:

1. В любую ячейку листа (например, в А1) введём путь к папке, список файлов из которой мы хотим получить.


Обратите внимание, что путь должен оканчиваться шаблоном со звездочками:

  • *.* - любые файлы
  • *.xlsx - книги Excel (только с расширением xlsx)
  • *.xl* - любые файлы Excel
  • *отчет* - файлы, содержащие слово отчет в названии

и т.д.

2. Создадим именованный диапазон с помощью вкладки Формулы - далее кнопка Диспетчер имен - Создать (Formulas - Names Manger - Create). В открывшемся окне введем любое имя без пробелов (например Мои_файлы) и в поле диапазона выражение:

=ФАЙЛЫ(Лист1!$A$1)


После нажатия на ОК будет создан именованный диапазон с именем Мои_файлы, где хранится список всех файлов из указанной в А1 папки. Останется их оттуда только извлечь.

3. Чтобы извлечь имена отдельных файлов из созданной переменной, используем функцию ИНДЕКС (INDEX), которая в Excel вытаскивает данные из массива по их номеру:

Если лениво делать отдельный столбец с нумерацией, то можно воспользоваться костылем в виде функции СТРОКИ (ROWS), которая будет подсчитывать количество заполненных строк с начала списка автоматически:

=ИНДЕКС(Мои_файлы; ЧСТРОК($B$3:B3))

Ну, и скрыть ошибки #ССЫЛКА! в конце списка (если вы протягиваете формулу с запасом) можно стандартной функцией ЕСЛИОШИБКА (IFERROR):

=ЕСЛИОШИБКА(ИНДЕКС(Мои_файлы; ЧСТРОК($B$3:B3)); "")

Важное примечание: формально функция ФАЙЛЫ относится к макро-функциям, поэтому необходимо будет сохранить ваш файл в формате с поддержкой макросов (xlsm или xlsb).

Способ 2. Готовый макрос для ленивых

Если вы знакомы с макросами (не в смысле их программирования, а в смысле копипастинга готовых кодов на VBA), то вам, возможно, отлично зайдёт небольшой макрос, добавляющий в текущую книгу новый пустой лист и выводящий на него список всех файлов с их параметрами из заданной пользователем папки.

Для добавления макроса в вашу книгу нажмите сочетание клавиш Alt+F11, или кнопку Visual Basic на вкладке Разработчик (Developer), в открывшемся окне редактора Visual Basic вставьте новый модуль через меню Insert - Module и скопируйте туда текст этого макроса:

Sub FileList()
 Dim V As String
 Dim BrowseFolder As String
 
 'открываем диалоговое окно выбора папки
 With Application.FileDialog(msoFileDialogFolderPicker)
 .Title = "Выберите папку или диск"
 .Show
 On Error Resume Next
 Err.Clear
 V = .SelectedItems(1)
 If Err.Number <> 0 Then
 MsgBox "Вы ничего не выбрали!"
 Exit Sub
 End If
 End With
 BrowseFolder = CStr(V)
 
 'добавляем лист и выводим на него шапку таблицы
 ActiveWorkbook.Sheets.Add
 With Range("A1:E1")
 .Font.Bold = True
 .Font.Size = 12
 End With
 Range("A1").Value = "Имя файла"
 Range("B1").Value = "Путь"
 Range("C1").Value = "Размер"
 Range("D1").Value = "Дата создания"
 Range("E1").Value = "Дата изменения"
 
 'вызываем процедуру вывода списка файлов
 'измените True на False, если не нужно выводить файлы из вложенных папок
 ListFilesInFolder BrowseFolder, True
 End Sub
 
 
 Private Sub ListFilesInFolder(ByVal SourceFolderName As String, ByVal IncludeSubfolders As Boolean)
 
 Dim FSO As Object
 Dim SourceFolder As Object
 Dim SubFolder As Object
 Dim FileItem As Object
 Dim r As Long
 
 Set FSO = CreateObject("Scripting.FileSystemObject")
 Set SourceFolder = FSO.getfolder(SourceFolderName)
 
 r = Range("A65536").End(xlUp).Row + 1 'находим первую пустую строку
 'выводим данные по файлу
 For Each FileItem In SourceFolder.Files
 Cells(r, 1).Formula = FileItem.Name
 Cells(r, 2).Formula = FileItem.Path
 Cells(r, 3).Formula = FileItem.Size
 Cells(r, 4).Formula = FileItem.DateCreated
 Cells(r, 5).Formula = FileItem.DateLastModified
 r = r + 1
 X = SourceFolder.Path
 Next FileItem
 
 'вызываем процедуру повторно для каждой вложенной папки
 If IncludeSubfolders Then
 For Each SubFolder In SourceFolder.SubFolders
 ListFilesInFolder SubFolder.Path, True
 Next SubFolder
 End If
 
 Columns("A:E").AutoFit
 
 Set FileItem = Nothing
 Set SourceFolder = Nothing
 Set FSO = Nothing
 
 End Sub
 

Для запуска макроса нажмите сочетание клавиш Alt+F8,или кнопку Макросы (Macros) на вкладке Разработчик (Developer), выберите наш макрос FileList и нажмите кнопку Выполнить (Run). В диалоговом окне выберите любую папку или диск и - вуаля!

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

Cells(r, 2).Formula = FileItem.Path

на

Cells(r, 2).Formula = "=HYPERLINK(""" & FileItem.Path & """)"

Способ 3. Мощь и красота - надстройка Power Query

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

Если у вас Excel 2016 или новее, то Power Query уже встроена в Excel по умолчанию, поэтому просто на вкладке Данные выберите команду Создать запрос / Получить данные - Из файла - Из папки (Create Query / Get Data - From file - From folder). Если у вас Excel 2010-2013, то Power Query нужно будет скачать с сайта Microsoft и установить как отдельную надстройку и она появится у вас в Excel в виде отдельной вкладки Power Query. На ней будет аналогичная кнопка Из файла - Из папки (From file - From folder).

В открывшемся окне нужно будет указать папку, содержимое которой мы хотим получить. После нажатия на ОК Power Query обшарит указанную папку и все вложенные подпапки и выдаст на экран окно с предварительным просмотром результатов:


Если внешний вид списка вас устраивает, то можно смело жать внизу кнопку Загрузить (Load), чтобы залить эти данные на новый лист. Если же хочется дополнительно обработать список (удалить лишние столбцы, отобрать только нужные файлы и т.п.), то нужно выбрать команду Изменить / Преобразовать данные (Edit / Transform Data).

Поверх окна Excel откроется окно редактора Power Query, где мы увидим список всех наших файлов в виде таблицы:


Дальше возможны несколько вариантов:

  • Если нужны только файлы определенного типа, то их можно легко отобрать с помощью фильтра по столбцу Extension:

  • Аналогичным образом фильтрами по столбцам Date accessed, Date modified или Date created можно отобрать файлы за нужный период (например, созданные только за последний месяц и т.п.):

  • Если нужно получить данные не из всех папок, то фильтруем по столбцу Folder Path, чтобы оставить только те строки, где путь содержит/не содержит нужные имена папок:

  • Там же можно выполнить сортировку файлов по любому столбцу, если требуется.

После того, как необходимые файлы отобраны, можно смело удалить ненужные столбцы, щелкнув по заголовку столбца правой кнопкой мыши и выбрав команду Удалить (Remove column). Это, кстати, уже никак не повлияет на фильтрацию или сортировку нашего списка:

Если в будущем планируется подсчитывать количество файлов в каждой папке (например, для контроля поступивших заявок или подсчета статистики по заявкам), то имеет смысл дополнительно сделать ещё пару действий:

  • Щелкните правой кнопкой мыши по столбцу Folder Path и выберите команду Дублировать столбец (Duplicate Column).
  • Выделите скопированный столбец и на вкладке Преобразование (Transform) выберите Разделить столбец - По разделителю (Split Column - By delimiter)

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

Получившиеся столбцы можно переименовать (Диск, Папка1, Папка2 и т.д.), просто щёлкнув дважды по заголовку каждого.

И, наконец, когда список готов, то его можно выгрузить на лист с помощью команды Главная - Закрыть и загрузить - Закрыть и загрузить в... (Home - Close & Load - Close & Load to...):

И, само-собой, теперь можно построить по нашей таблице сводную (вкладка Вставка - Сводная таблица), чтобы легко подсчитать количество файлов в каждой папке:

Дополнительным бонусом можно сделать еще один столбец с функцией ГИПЕРССЫЛКА (HYPERLINK), которая создаст красивые стрелочки-ссылки для моментального перехода к каждому файлу:


Мелочь, а приятно :)

И вдвойне приятно, что в будущем, при изменении содержимого исходной папки, достаточно будет просто щелкнуть мышью по нашей таблице и выбрать команду Обновить (Refresh) - и Power Query выполнит всю цепочку запрограммированных нами единожды действий уже автоматически, отобразив все изменения в составе папки.

Ссылки по теме

 

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

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

Содержание статьи

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

Первый рассматриваемый сегодня способ — при помощи командной строки. Для этого проделайте следующее:

  1. Откройте Проводник, зайдите в папку, список файлов в которой требуется получить, зажмите клавишу SHIFT, нажмите на любом свободном месте правой кнопкой мыши и выберите пункт «Открыть окно команд»
  2. Чтобы получить список файлов можно использовать две команды — dir /b, выводящую файлы и папки исключительно данной директории и dir /s, выполняющую команду рекурсивно При этом рекурсивный вывод в консоль, в случае если файлов в папке много, может быть неудобен для восприятия так как требуется много раз прокручивать экран
  3. Лучший выход в такой ситуации — сохранить вывод консоли в текстовый файл. Для того введите последовательно команды chcp 1251 и dir /s>file.txt
  4. После этого в оцениваемой папке появится текстовый файл, который можно прочитать при помощи обычного Блокнота

Total Commander

Следующий способ оценки количества файлов в папке — популярный файловый менеджер Total Commander. Для того чтобы им воспользоваться, проделайте следующее:

  1. Скачайте программу по ссылке
  2. Запустите скачанный файл. Выберите язык установки, после нажмите кнопку «Далее»
  3. Ответьте на вопрос, нужны ли вам остальные языки
  4. Укажите каталог для установки
  5. Укажите требуется ли создание ярлыков
  6. После завершения установки запустите программу. Бесплатная версия при каждом запуске требует нажатия одной из трех кнопок внизу окна
  7. В любой из двух панелей файл-менеджера перейдите к папке, файлы в которой необходимо подсчитать
  8. В меню «Выделение» требуется нажать на команду «Выделить все»
  9. Выделенные файлы и папки будут обозначены красным цветом. В меню «Выделение» выберите «Копировать имена файлов в буфер»
  10. После этого можно открыть блокнот и вставить имена файлов в текстовый редактор

DirLister

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

  1. Скачайте программу по ссылке и запустите скачанный файл
  2. В поле «Directory to scan» нажмите кнопку «Open» и выберите директорию, содержимое которой требуется проанализировать
  3. В поле «Output file» нажмите на кнопку «Save as» и выберите местоположение файла, в который требуется записать список содержимого папки
  4. В разделе «Options» можно выбрать, включать ли в вывод путь к файлам («Include file path»), нужен ли рекурсивный вывод («include subfolders» и «Include directoryes») и требуется ли включать скрытые файлы («Inc. Hidden Files»)
  5. Блок «File Type» позволяет выбрать формат файла вывода. Доступны обычный текстовый файл (Plain Text), текстовый файл с разделителем-табулятором (TAB Separated), текст с разделителем-пробелом (SPACE Sep.), таблица Excel а также формат HTML
  6. После выбора всех параметров нажмите на кнопку «Make List»

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

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

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

В интернете нашёл способ сделать это при помощи командной строки Windows, но я не очень люблю работу в командной строке. И вот, продолжительными поисками оптимального способа, было найдено нужное решение.

Как говорится, всё гениальное просто. Нам нужно создать всего лишь один bat-файл, разместить его в необходимом каталоге и запустить, после чего будет создан файл в формате «.doc», который будет включать в себе названия всех имеющихся объектов.

Итак, приступим к созданию такого волшебного батника. Самое главное условие — расширение исполняемого файла должно быть «.bat». Как включить отображение расширений в операционной системе Windows можно узнать из статьи «Как включить отображение расширения файлов». Второе условие (необязательное) — желательно использовать текстовый редактор Notepad++.

СПИСОК ФАЙЛОВ

Открываем программу Notepad++ и создаем новый документ. Копируем этот код:

chcp 1251 dir/B>spisok.doc exit

и вставляем его в документ.

Переходим в меню «Файл» — «Сохранить как…».

Выбираем директорию для сохранения (Рабочий стол), в поле «Имя файла» — пишем например spisok.bat, а в поле «Тип» — выбираем «All types (*.*)» («Все типы») и сохраняем его.

Получаем на Рабочем столе исполняемый файл «spisok.bat».

Теперь для получения желаемого, копируем и вставляем созданный нами выше файл в папку и запускаем его. После чего в ней же и получаем документ «spisok.doc», открыв который при помощи Microsoft Word (выбираем нужную кодировку, если есть русское название), увидим список.

Чтобы получить содержимое всех вложенных каталогов в выбранной директории вместо «dir/B>spisok.doc » ставим «dir/S>spisok.doc».

Если этот компьютерный совет был Вам полезен, прошу отправить ссылку на статью своим друзьям через кнопки социальных сетей. Не забывайте оставлять комментарии. Спасибо большое!

Команда для вывода списка всех файлов в папке, а также подпапок в Windows

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании
.

Как мне составить список файлов в папке и всех ее подпапках?

Привет, сценарист! Как я могу перечислить все файлы в папке, а также все файлы в любых подпапках этой папки?

- MA

Эй, Массачусетс. Это вопрос, который нам задают довольно часто, и на который до сих пор избегали ответа. Это потому, что на этот вопрос нет простого и приятного ответа: сценарий, который может выполнить эту задачу, обязательно будет немного запутанным и не подойдет для простого для объяснения подхода, который мы предпочитаем. с этим столбцом.С другой стороны, заказчик всегда прав: ребята, если вам нужен сценарий, который может перечислить все файлы в папке, а также все файлы в любых подпапках этой папки, ну, кто мы такие, чтобы спорить?

Прежде чем мы начнем, нам нужно решить две проблемы. Во-первых, нам нужно выбрать технологию создания сценариев. WMI, FileSystemObject и объект Shell могут перечислять файлы в папке, а также перечислять подпапки в папке. Однако ни одна из этих технологий не имеет механизма автоматического перечисления файлов в этих подпапках (не говоря уже о подпапках, которые могут там находиться).Любая из этих технологий сработает, но ни одна не сделает это легко.

Мы выбрали WMI. Результирующий сценарий, возможно, немного сложнее, чем аналогичный сценарий, использующий FileSystemObject или объект Shell, но сценарий WMI, который может извлекать такую ​​информацию на локальном компьютере, может так же легко получить такую ​​информацию с удаленного компьютера. Это не относится ни к объекту FileSystemObject, ни к объекту Shell. Мы проголосовали за гибкость WMI.

Во-вторых, мы отметили, что ни одна из технологий создания сценариев не имеет встроенного способа перебора папки, перечисления имен файлов, а затем автоматического перебора всех подпапок и перечисления найденных в них файлов. Из-за этого нам нужно использовать рекурсивную функцию для выполнения этой задачи. Объяснение рекурсии выходит за рамки того, что мы можем сделать в этом столбце; для краткого объяснения обратитесь к Microsoft Windows 2000 Scripting Guide . Достаточно сказать, что мы создаем функцию, которая может вызывать себя сколько угодно раз.Другими словами, если у нас есть функция, которая обращается к папке и перечисляет все ее файлы, эта функция может вызвать себя для доступа к подпапке и перечислить все файлы, найденные в ней. А затем вызовите себя снова, чтобы получить доступ к подпапке. Это сложно представить, но это работает.

Есть еще одна сложность, но мы с ней справимся через минуту. А пока давайте взглянем на скрипт, который перечисляет папку и все ее подпапки (хотя в этом первом примере не перечислены файлы, найденные в этих папках):

 strComputer = «.” Установите objWMIService = GetObject («winmgmts: \\» & strComputer & «\ root \ cimv2») 

strFolderName = «c: \ scripts»

Установить colSubfolders = objWMIService.ExecQuery _ («Ассоциаторы {Win32_Directory.Name = '» & strFolderName & «‘} »_ & «Где AssocClass = Win32_Subdirectory» _ & «ResultRole = PartComponent»)

для каждой objFolder в colSubfolders GetSubFolders strFolderName Следующие

Sub GetSubFolders (strFolderName) Установите colSubfolders2 = objWMIService.ExecQuery _ («Ассоциаторы {Win32_Directory.Name = '» & strFolderName & «‘} »_ & «Где AssocClass = Win32_Subdirectory» _ & «ResultRole = PartComponent»)

для каждого objFolder2 в colSubfolders2 strFolderName = objFolder2.Name Wscript.Echo objFolder2.Name GetSubFolders strFolderName следующий Конец подписки

Мы используем запрос AssociatorsOf для получения списка всех подпапок папки C: \ Scripts.В основном наш запрос говорит следующее: Получите мне список всех элементов, связанных с каталогом C: \ Scripts, при условии, что эти элементы являются подкаталогами (, где AssocClass = Win32_Subdirectory ).

Это дает нам список всех подпапок верхнего уровня: например, C: \ Scripts \ Folder1 и C: \ Scripts \ Folder2. То, что не дает нам , - это папки второго уровня; этот запрос не возвращает папку типа C: \ Scripts \ Folder1 \ SubfolderA. Чтобы получить доступ к этим подпапкам (подпапкам подпапки), нам нужно использовать рекурсивный запрос.Это то, что делает подпрограмма GetSubFolders . Мы передаем ему - одно за другим - имя каждой найденной подпапки (например, C: \ Scripts \ Folder1 и C: \ Scripts \ Folder2) и позволяем ему запрашивать каждую из этих подпапок для любых подпапок. Если - это любых подпапок, функция автоматически вызовет себя и будет искать любые подпапки.

Запутались? Не расстраивайся; ты не единственный. Но не беспокойтесь об этом; просто оставьте код как есть и попробуйте. Для поиска в другой папке (то есть в папке, отличной от C: \ Scripts) просто измените значение переменной, содержащей папку, в которой вы хотите выполнить поиск.Например, если вы хотите выполнить поиск в C: \ Windows, используйте эту строку кода:

 strFolderName = «c: \ windows» 

А что насчет файлов, найденных во всех этих папках? Что ж, здесь вещи действительно усложняются. Это потому, что нам нужно сделать дополнительный запрос: мы используем один запрос, чтобы получить имена всех подпапок, а затем второй запрос, чтобы получить коллекцию файлов, найденных в каждой папке. Этот второй запрос выглядит примерно так:

 Set colFiles = objWMIService.ExecQuery _ («Выбрать * из CIM_DataFile, где Path =‘ »и strPath &« ‘») 

Это не так уж плохо, за исключением того, что в запросе, подобном этому, мы должны «экранировать» (удваивать) все, что находится в путях к файлам. Мы не можем использовать C: \ Scripts \ Folder1 \ в нашем запросе; вместо этого мы должны использовать C: \ Scripts \ Folder1 \ . Вы увидите код в скрипте, который заменяет каждый \ на \\; это как раз то, что нам нужно делать при ссылке на путь к файлу в таком запросе. Хорошая часть скрипта не делает ничего, кроме преобразования имен путей к папкам, чтобы их можно было использовать в запросе.

Вот и все предостережения. Вот сценарий, который все так долго хотели заполучить:

 strComputer = "." Установите objWMIService = GetObject («winmgmts: \\» & strComputer & «\ root \ cimv2») 

strFolderName = «c: \ scripts»

Установить colSubfolders = objWMIService.ExecQuery _ («Ассоциаторы {Win32_Directory.Name = '» & strFolderName & «‘} »_ & «Где AssocClass = Win32_Subdirectory» _ & «ResultRole = PartComponent»)

Wscript.Эхо strFolderName

arrFolderPath = Разделить (strFolderName, «\») strNewPath = «» Для i = 1 в Ubound (arrFolderPath) strNewPath = strNewPath & «\\» & arrFolderPath (i) следующий strPath = strNewPath & «\\»

Установить colFiles = objWMIService.ExecQuery _ («Выбрать * из CIM_DataFile, где Path =‘ »& strPath &« ‘»)

для каждого objFile в colFiles Wscript.Echo objFile.Name Следующие

для каждой objFolder в colSubfolders GetSubFolders strFolderName Следующие

Sub GetSubFolders (strFolderName) Установите colSubfolders2 = objWMIService.ExecQuery _ («Ассоциаторы {Win32_Directory.Name = '» & strFolderName & «‘} »_ & «Где AssocClass = Win32_Subdirectory» _ & «ResultRole = PartComponent»)

для каждого objFolder2 в colSubfolders2 strFolderName = objFolder2.Name Wscript.Echo Wscript.Echo objFolder2.Name arrFolderPath = Разделить (strFolderName, «\») strNewPath = «» Для i = 1 в Ubound (arrFolderPath) strNewPath = strNewPath & «\\» & arrFolderPath (i) следующий strPath = strNewPath & «\\»

Установите colFiles = objWMIService.ExecQuery _ («Выбрать * из CIM_DataFile, где Path =‘ »& strPath &« ‘»)

для каждого objFile в colFiles Wscript.Echo objFile.Name Следующие

GetSubFolders strFolderName следующий Конец подписки

Мы говорили вам, что это было сложно. Но это работает. Этот сценарий привяжется к папке C: \ Scripts и отобразит имена всех найденных там файлов; затем сценарий получит список всех подпапок, находящихся в C: \ Scripts.Оттуда мы перебираем коллекцию подпапок, вызывая рекурсивную функцию GetSubFolders для каждой из них. Эта функция выведет список всех файлов, найденных во вложенной папке, а затем проверит, есть ли во вложенной папке какие-либо вложенные папки. Если это так, рекурсивная функция будет вызвана снова, и процесс будет повторяться, пока мы не дойдем до конца строки: пока мы не перечислим все файлы, найденные в C: \ Scripts и во всех его подпапках.

Завтра мы должны вернуться к более легкому.Кто-нибудь хочет знать, как получить имя локального компьютера с помощью скрипта?


.

Amazon S3 как перечислить файлы в «папке»

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
.

Как я могу получить список всех файлов в папке и ее подпапках?

Привет, сценарист! Как я могу использовать сценарий, чтобы показать мне все файлы в папке? И как я могу изменить этот сценарий, чтобы он показывал мне все файлы во всех подпапках этой папки?

- CS

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

Начнем с простого: скрипт, который просто перечисляет все файлы в папке. Этот сценарий возвращает имена всех файлов, найденных в папке C: \ Scripts:

 Set objFSO = CreateObject («Scripting.FileSystemObject») objStartFolder = «C: \ Scripts» 

Установить objFolder = objFSO.GetFolder (objStartFolder)

Установить colFiles = objFolder.Files Для каждого objFile в colFiles Wscript.Echo objFile.имя следующий

Как видите, в этом нет ничего особенного. Мы создаем экземпляр FileSystemObject, а затем используем метод GetFolder для привязки к папке C: \ Scripts. Довольно просто. Если бы мы хотели выполнить привязку, скажем, к папке Windows, все, что нам нужно было бы сделать, это изменить путь соответствующим образом, что мы делаем, присваивая другое значение objStartFolder:

 objStartFolder = «C: \ Windows» 

После подключения к папке мы создаем ссылку на свойство Files с помощью этой команды:

 Set colFiles = objFolder.Файлы 

Это возвращает нам коллекцию, состоящую из всех файлов, найденных в папке. (Но - и это имеет важные последствия для вашего второго вопроса - эта коллекция не включает файлы, найденные в каких-либо подпапках C: \ Scripts.) На этом этапе остальное - детская игра: теперь мы можем использовать цикл For Each для выполнения цикла сбор файлов и - если мы захотим - сделать что-нибудь с каждым. Поскольку вы спросили, как получить список всех файлов в папке, все, что мы делаем, это выводим имя файла.Но мы могли сделать намного больше; например, мы могли бы сообщить о свойстве DateCreated или свойстве Size. Более полное изложение объекта FileSystemObject и того, как его использовать, можно найти в руководстве Script Runtime Primer в Руководстве по созданию сценариев Microsoft Windows 2000.

Другими словами, вернуть список всех файлов в папке тривиально. Получить обратно список всех файлов в папке плюс всех файлов в любых подпапках этой папки может быть немного сложнее.Для этого вам нужно использовать рекурсивный скрипт. Мы не будем здесь объяснять рекурсию; для получения дополнительных сведений ознакомьтесь с этой частью Microsoft Windows 2000 Scripting Guide . (Да, мы с по , кажется, довольно много продвигаем книгу сегодня, не так ли?) По сути, рекурсивная функция - это функция, которая может автоматически вызывать себя столько раз, сколько необходимо. Возможно, в этом нет особого смысла, но подумайте об этом так. Сценарий, который мы показали выше, перечисляет все файлы в папке и затем останавливается.Не имеет значения, есть ли в папке подпапки; сценарию все равно.

Рекурсивная функция, напротив, заботится о : она будет продолжать работать, пока не сделает все, что вы от нее просили, и даже больше. Рекурсивная функция выведет список всех файлов в папке, а затем проверит, есть ли в этой папке какие-либо подпапки. Предположим, он находит подпапки A и B. В этом случае функция вызовет себя и перечислит все файлы, найденные в подпапке A. А что, если в подпапке A есть подпапка C? Нет проблем: функция вызовет себя снова и выведет список всех файлов в подпапке C.Это будет продолжаться до тех пор, пока не перестанут быть найдены вложенные папки. В этот момент функция вернется в цикл и начнет работать через подпапку B. Кроме того, она будет должным образом продолжать работу, пока не пройдёт через каждую подпапку, подпапку и подпапку, и - ну, пока был указан каждый последний файл.

Звучит ужасно сложно, и это так. К счастью, VBScript скрывает от вас большую часть этой сложности. Эй, не могли бы мы надуть вас над чем-то подобным? Посмотрите, вот скрипт, который использует рекурсивную функцию - ShowSubFolders - для вывода списка всех файлов в папке C: \ Scripts и всех файлов, найденных в любых подпапках C: \ Scripts:

 Set objFSO = CreateObject («Scripting.FileSystemObject ») objStartFolder = «C: \ Scripts» 

Установить objFolder = objFSO.GetFolder (objStartFolder) Wscript.Echo objFolder.Path Установите colFiles = objFolder.Files Для каждого objFile в colFiles Wscript.Echo objFile.Name следующий Wscript.Echo

Показать подпапки objFSO.GetFolder (objStartFolder)

Sub ShowSubFolders (Папка) Для каждой подпапки в Folder.SubFolders Wscript.Echo Subfolder.Path Установите objFolder = objFSO.GetFolder (Subfolder.Path) Установите colFiles = objFolder.Файлы Для каждого objFile в colFiles Wscript.Echo objFile.Name следующий Wscript.Echo Подпапка ShowSubFolders следующий Конец подписки

Как видите, первая часть скрипта в точности такая же, как и та, которую мы видели раньше (за одним исключением: она повторяет путь к папке, чтобы мы знали, в какую папку мы смотрим). После отображения всех файлов в C: \ Scripts он затем вызывает рекурсивную функцию ShowSubFolders. Затем эта функция начинает просмотр всех подпапок и сообщает обо всех найденных файлах.Вся эта «рекурсия» происходит автоматически; все, что вам нужно сделать, это просто сесть и посмотреть.

Если вы не совсем понимаете, что здесь происходит, не беспокойтесь об этом; требуется время, чтобы полностью понять, как работают рекурсивные функции. А пока просто скопируйте предыдущий сценарий и используйте его каждый раз, когда вам нужно что-то сделать со всеми файлами в папке и ее подпапках.


.

php - Как вывести список всех файлов в папках и подпапках с помощью scandir и отобразить их в качестве опции при выборе?

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
.

linux - Как вывести список файлов из пользовательской папки в Wordpress?

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
.

Смотрите также