Как на Windows узнать, сколько файлов хранится в папках
Бывают случаи, когда вам нужно точно знать, сколько файлов или папок хранится в определенной папке. Независимо от того, работаете ли вы для своей статистики или если у вас есть устройство Windows, существует множество способов, которыми вы можете найти эту информацию. Мы решили написать статью, в которой мы собираемся показать вам все методы, которые мы знаем, для подсчета элементов, найденных внутри папки.
ПРИМЕЧАНИЕ. Методы подсчета файлов и папок, которые мы покажем в этой статье, работают аналогично в Windows 10, Windows 8.1 и Windows 7. Для простоты мы будем использовать только скриншоты, сделанные в Windows 10.
Метод 1. Используйте Проводник для выбора файлов и папок, которые вы хотите подсчитать
Первый метод предполагает использование Проводника / Проводника Windows . Откройте «Проводник» и перейдите к папке, в которой хранятся элементы, которые вы хотите подсчитать.
Общее количество элементов (файлов и папок), хранящихся внутри, отображается в нижнем левом углу пользовательского интерфейса File Explorer.

Если вы хотите считать только некоторые из файлов или папок, хранящихся в вашей папке, выберите их все и посмотрите на нижнюю левую часть интерфейса File Explorer. Он отобразит количество выбранных элементов.

Способ 2. Используйте окно «Свойства» для рекурсивного подсчета всех файлов и папок
Хотя предыдущий метод во многих случаях полезен, он не работает рекурсивно. Он считает файлы и папки на первом уровне дерева папок, но эти папки, скорее всего, содержат другие файлы и папки внутри. Что, если вы хотите точно знать, сколько папок и файлов хранится внутри определенной папки и всех ее подпапок? Легкий способ найти эту информацию — использовать окно Свойства выбранной папки. Щелкните правой кнопкой мыши или коснитесь и удерживайте значок папки. В контекстном меню нажмите или коснитесь Свойства.

Обратите внимание, что еще более быстрый способ открыть окно свойств папки — выбрать его, а затем одновременно нажать клавиши Alt + Enter на клавиатуре.
Когда откроется окно «Свойства», Windows автоматически начнет подсчет файлов и папок внутри выбранной папки. Вы увидите эту информацию в поле «Содержит».

Метод 3. Используйте командную строку для рекурсивного подсчета всех файлов и папок
Вы также можете использовать командную строку. Чтобы подсчитать папки и файлы, хранящиеся в определенной папке, откройте командную строку и перейдите к этой папке. Для этого запустите команду cd [path] , где [путь] — это местоположение вашей папки. Вы можете увидеть пример на скриншоте ниже.

Затем, чтобы подсчитать все папки и файлы внутри родительской папки, выполните следующую команду:
dir *.* /w /s

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

Метод 4. Используйте PowerShell для подсчета всех файлов и папок
Другим тривиальным способом подсчета файлов и папок, хранящихся в родительской папке, является использование PowerShell . Откройте окно PowerShell и направляйтесь в папку родительской папки. Запустите команду cd [path] , где [путь] — путь вашей папки. Вот пример:

Если вы хотите подсчитать все элементы внутри вашей папки, независимо от того, являются ли они файлами или папками, выполните следующую команду. Обратите внимание, что он не работает рекурсивным образом, он учитывает только элементы первого уровня.
Get-ChildItem | Measure-Object | %

Если вы хотите подсчитать только папки внутри родительской папки, выполните следующую команду:
Get-ChildItem -Directory | Measure-Object | %

Если вы хотите знать только количество файлов, запустите эту команду:
Get-ChildItem -File | Measure-Object | %

Если вы хотите рекурсивно подсчитывать папки и/или файлы в родительской папке, добавьте параметр Recurse в предыдущие команды следующим образом:
- Рекурсивно подсчитывать все файлы и папки: Get-ChildItem -Recurse | Measure-Object | % Get-ChildItem -Recurse | Measure-Object | %
- Рекурсивно подсчитывать только папки: Get-ChildItem -Recurse -Directory | Measure-Object | % Get-ChildItem -Recurse -Directory | Measure-Object | %
- Рекурсивно считать только файлы: Get-ChildItem -Recurse -File | Measure-Object | % Get-ChildItem -Recurse -File | Measure-Object | %

Заключение
Если вы хотите точно знать, сколько файлов и папок находится в определенной папке с вашего компьютера под управлением Windows, теперь вы знаете, как это сделать. Как вы видели, есть несколько способов, которыми вы можете найти эту информацию, чтобы вы могли выбрать, что лучше подходит.
Насколько публикация полезна?
Нажмите на звезду, чтобы оценить!
Средняя оценка / 5. Количество оценок:
Оценок пока нет. Поставьте оценку первым.
Определить количество файлов с указанным расширением, находящимся в заданном каталоге
Определить количество файлов с указанным расширением, находящимся в заданном каталоге. Если таких файлов нет, то выдать на экран сообщение. Имя каталога и расширение передаются в программу через параметры командной строки.
помогите кто может?
Лучшие ответы ( 3 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

В указанном каталоге и его подкаталогах найти наибольшего размера файл с указанным расширением
Помогите пожалуйста написать задание из лабораторной работы по ОС 1. В каталоге, указанном.

В заданном каталоге посчитать количество файлов с расширениями .txt, .html, .doc
Написать bat-файл: В заданном каталоге ( передается как параметр ) посчитать количество файлов з.
Подсчитать количество файлов, принадлежащих пользователям указанной группы в заданном каталоге
Помогите пожалуйста разобраться с задачей : Подсчитать количество файлов, принадлежащих.
Вывод на экран список файлов и название программ С++ , находящимся в указанном при запуске программы каталоге
Добрый день! Помогите пожалуйста: Написать программу, которая выведет на экран список файлов.
![]()
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
помогу. покажи что написал?
![]()
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
Для начала просто распечатай список всех файлов и директорий из каталога.
Регистрация: 03.01.2010
Сообщений: 9
Сообщение от niXman 
помогу. покажи что написал?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
#include #include #include int sel (struct dirent *d) { int b=strlen(d->d_name); if ((d->d_name[b-1]=='с')&&(d->d_name[b-2]=='.')) return 1; else return 0; } int main(int argc, char ** argv) { int i, n; struct dirent ** entry; n=scandir(argv[1], &entry, sel, alphasort); printf("Kolichestvo naidenih failov=%i\n", n); if(n0) { printf("Oshibka chtenia direktorii\n"); return 1; } for(i=0;in;i++) printf("%s inode=%i\n", entry[i]->d_name, entry[i]->d_ino); return 0; }
вот такое написал, программа ищет все файлы с расширением «с» в указанной директории,
проблема в том что не знаю как переделать чтобы искало файлы, если длина расширения больше чем 1 символ и не получается указать расширение через argv[2]
![]()
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2

Сообщение было отмечено Памирыч как решение
Решение
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
#include #include #include char* ext = NULL; int sel (struct dirent *d) { int plen, extlen; char* p = strrchr(d->d_name, '.'); if ( !p ) return 0; plen = strlen(p); extlen = strlen(ext); return strncmp(ext, p, (extlen plen) ? extlen : plen) == 0; } int main(int argc, char ** argv) { int i, n; struct dirent ** entry; ext = argv[2]; // <<<<<<= scandir(argv[1], &entry, sel, alphasort); printf("Kolichestvo naidenih failov=%i\n", n); if(n0) { printf("Oshibka chtenia direktorii\n"); return 1; } for(i=0;in;i++) printf("%s inode=%i\n", entry[i]->d_name, entry[i]->d_ino); return 0; }
Как найти количество файлов с определенным расширением
Подскажите, пожалуйста, логику алгоритма подсчета количества файлов определенного типа в папке. Посчитать все файлы получается. А вот с указанным расширением ни как. Не могу понять принцип.
Dim X As Variant X = TextBox1.Text Set FSO = CreateObject("Scripting.FileSystemObject") Y = FSO.GetFolder(X).Files.Count MsgBox Y
Пользователь
Сообщений: 39 Регистрация: 16.04.2019
11.08.2019 11:06:24
Проверять имя файлов на содержание нужных символов, после чего сделать обычный счетчик i++, который можно вывести.
Изменено: PDO — 11.08.2019 11:07:04
Сообщений: 22305 Регистрация: 28.12.2016
Excel 2013, 2016
11.08.2019 11:07:38
использовать другой объект https://www.script-coding.com/WSH/Shell.html#5.3.3 .
или в цикле перебирать и считать нужные.
По вопросам из тем форума, личку не читаю.
Пользователь
Сообщений: 1042 Регистрация: 10.06.2013
11.08.2019 11:17:13
Можно без лишних объектов:
Sub testDirFunction() Dim counter Dim fn ChDir Environ("homepath") & Application.PathSeparator & _ "Downloads" fn = Dir("*.xlsx") counter = 0 While Len(fn) > 0 counter = counter + 1 fn = Dir() Wend MsgBox "Total count: " & counter End Sub
С уважением,
Федор/Все_просто
Сообщений: 22305 Регистрация: 28.12.2016
Excel 2013, 2016
11.08.2019 11:30:27
| Цитата |
|---|
| Все_просто написал: Можно без лишних объектов: |
можно, но не проще
X = TextBox1.Text Set objFolderItems = CreateObject("Shell.Application").Namespace(X).Items() objFolderItems.Filter 64, "*.xlsx" MsgBox "Total count: " & objFolderItems.Count
По вопросам из тем форума, личку не читаю.
Пользователь
Сообщений: 8 Регистрация: 11.08.2019
11.08.2019 12:22:27
БМВ,
благодарю. Круто, конечно.
Вот только как научится это понимать самому.
Пользователь
Сообщений: 4570 Регистрация: 10.09.2017
11.08.2019 14:05:50
Навыки программирования плюс практика и еще раз практика (посмотрите на число сообщений Михаила).
В #5 использован синхронный метод Filter, поэтому не нужны «подпрыжки» с задержками, которые мы обычно видим в примерах с Shell.Application.
Функция dir из #4 не справится, если в пути к папке или именах файлов будут символы, которые не вписываются в кодовую страницу Windows по умолчанию.
Сообщений: 22305 Регистрация: 28.12.2016
Excel 2013, 2016
11.08.2019 14:14:52
| Цитата |
|---|
| sokol92 написал: (посмотрите на число сообщений Михаила). |
да просто разговорчивый медведь попался, особенно когда пыхнет
По вопросам из тем форума, личку не читаю.
Пользователь
Сообщений: 8 Регистрация: 11.08.2019
11.08.2019 15:56:21
Будете у нас в Ростове, милости просим заходите на плюшки)
Пользователь
Сообщений: 3154 Регистрация: 18.04.2017
12.08.2019 09:52:05
Может пригодится, пересчитывает все расширения в указанной папке.
Sub main() Dim objFSO As Object Dim ifile As Object, ipath$, txt$ Dim objDic As Object, ikey ipath = "Путь к папке" Set objFSO = CreateObject("scripting.filesystemobject") Set objDic = CreateObject("Scripting.Dictionary") For Each ifile In objFSO.GetFolder(ipath).Files txt = Right(ifile.Name, Len(ifile.Name) - InStrRev(ifile.Name, ".")) objDic.Item(txt) = objDic.Item(txt) + 1 Next ifile txt = "" For Each ikey In objDic.Keys txt = txt & ikey & " : " & objDic.Item(ikey) & "шт." & vbNewLine Next MsgBox txt End Sub
Изменено: Nordheim — 12.08.2019 13:16:24
«Все гениальное просто, а все простое гениально. »
Пользователь
Сообщений: 39 Регистрация: 20.01.2020
24.01.2020 11:36:29
| Цитата |
|---|
| Все_просто написал: Можно без лишних объектов: |
вот, по этим мотивам сделал макрос вставляющий строки сверху шапки в зависимости от кол-ва файлов в папке:
' проверяем кол-во файлов в папке, и если их больше возможного- вставляем строки ' чтобы неналазило на таблицу Sub ВставкаСтрок() Dim counter Dim fn Dim myFSO As Object, myFolder As Object, myFile As Object If ActiveSheet.Name = "спецификация" Then Set c_naim = ActiveSheet.Cells.Find(what:="Наименование товара", LookAt:=xlWhole) naim_row = c_naim.Row End If '3. Создание объекта для работы с папками и файлами. Set myFSO = CreateObject(Class:="Scripting.FileSystemObject") ChDir myFSO.GetFolder(ActiveWorkbook.Path) fn = Dir("*.xls") counter = 0 While Len(fn) > 0 counter = counter + 1 fn = Dir() Wend ' счётчик файлов: counter 'макс. возиможное колическтво: naim_row - 6 'сколько строк вставляем: counter - naim_row - 6 'eсли макс возможное меньше или равно счетчику: If naim_row - 6
Все_просто, спасибо за идею, выручили сильно,- спасибо! чмоки)
зы: только этот макрос отдельно не запускался из другого, писал: "отсутствует макрос такойто. ". пришлось вписать в основной.
Расширеный поиск в Windows или как найти файл в Windows?

В этой статье вы узнаете весьма интересные вещи о встроенном файловом поиске Windows и прочитав материал сможете находить даже затерянные в папках файлы о которых знаете крупицы информации.
Нетрудно догадаться что речь зайдёт в этом материале о расширенном поиске в Windows. Несомненно каждый пользователь компьютера периодически использует форму стандартного "поисковика" Windows, но далеко не все знают о том что этим поисковиком можно пользоваться куда более производительно и это непростой инструмент как может показаться с первого взгляда.
Опции и и параметры расширяющие возможности поиска
Несмотря на то что в заголовке есть слово "расширяющие", эти самые опции будут помогать нам ставить дополнительные отсеивающие фильтры на наш поисковый запрос по файлам и папкам в Windowsи фактически будут сужать количество находимых файлов, что нам как раз на пользу.
* - Означает любую последовательность любых символов, т.е. все символы.
? - Любой один символ
~something" - Поиск имени (Название файла, автор и тд., смотря где поставить) которое должно начинаться с того что в кавычках. В примере ищется имя, где начало something.
~>"something" - Поиск имени, которое должно оканчиваться на то что в кавычках.
- Поиск точного совпадения с тем, что находится в кавычках.
~ - Поиск имени, которые содержат точный набор символов как тот, который в кавычках. Т.е. по запросу имяфайла:~="курс" будут находиться файлы не только со словом Курс, но и просто содержащие эту последовательность символов (Курсовой, Курсач).
~!"Курс" - Поиск файлов, которые не содержат того что в кавычках. Т.е. этот параметр полностью противоположен предыдущему.
<> - Означает как "ни есть", "не". Т.е. запрос где будет вид: <> картинка , будет искать всё кроме картинок.
() - Скобки служат для того чтобы отделять и уточнять комбинирующую группу, где действуют операторы.
"" - Кавычки служат для точного нахождения порядка символов внутри кавычек. Из-за этого внутри кавычек операторы не работают вовсе, как и фильтры.
ИЛИ - Оператор ИЛИ. Например, запрос имяфайла: курсовая ИЛИ работа будет искать файлы где встречаются слова либо курсовая либо работа ну или и то и то. В английской версии OR.
И - Оператор И. Например, запрос имяфайла: к урсовая И работа будет искать файлы где есть оба слова, причём нет разницы в каких местах они расположены и необязательно рядом друг с другом. В английской версии AND.
НЕ - Оператор НЕ. Например, запрос имяфайла: курсовая НЕ работа будет искать файлы где есть слово курсовая, но нет слова работа. В английской версии NOT.
Приведём немного приверов использования операторов:
размер:10МБ И автор: (Иван) НЕ датаизменения:>2009 - Найдёт файлы Ивана по 10 Мегабайт, которые изменены после 2009 года.
имяфайла: (*156*) И тип:(PNG ИЛИ JPEG) - Найдёт файлы, где в имени содержится 156 и его расширение будет PNG либо JPEG.
автор:( Ал* ИЛИ Иван) - Найдёт файлы авторов Алексея, Александра, Алёны и Ивана.
Теперь фильтрирующие опции.
Ниже мы приведём какие фильтрирующие опции вы можете использовать при поиске файлов и папок.
имяфайла: - Имя искомого файла. Аналог на англоязычной Windows - filename.
тип: Указывает какой тип файла ищется в данный момент. Может принимать как значения расширений файлов (Например, тип: PNG ), так и их логическое определение (Например: тип: музыка или тип: картинка ). Аналог на англоязычной Windows - type.
вид: - Тоже самое что и тип:. Аналог на англоязычной Windows - kind:
датаизменения: - Указывает на то, когда файлы был изменён. Может принимать точные значения, диапазоны, а также словестные значения (давно, вчера и тд.). Аналог на англоязычной Windows - datemodified.
датаизменения: 21.01.2001 .. 05.01.2014 (Обязательно две точки в диапазоне)
датасоздания: - Указывает на то, когда файл был создан. Значения принимает такие же как и у датаизменения. Англоязычный аналог datecreated.
размер: - Указывает какой размер должен быть у искомых файлов. Может принимать как точный значения вплоть до десятичных чисел, так и диапазон размеров. В качестве единицы измерения выступают Кб, Мб, Гб. Англоязычный параметр - size:.
размер: 1.5Мб - файлы больше 1,5 мегабайта, но меньше или равны 7.
атрибуты: - Задаёт дополнительную маску поиска по тегам. Параметр нечасто используется из-за того что редко используют теги.
автор: - Указывание автора, чьи файлы будут находиться.
владелец: - Поиск файлов определённого владельца.
исполнитель: - Указывание данного атрибута релевантно при поиске музыки того или иного исполнителя.
Комбинирование фильтрирующих опций
Можно использовать сразу несколько различных опций при поиске и это даже будет лучше, потому что сократит список найденных файлов, повыся при этом их релевантность. При нескольких поисковых фильтрах ставьте между ними пробел, фактически он заменяет оператора AND.
Внимание! Операторы И, ИЛИ НЕ никогда не подсвечиваются синим в строке поиска. Если у вас подсветились, значит вы забыли либо кавычки либо скобки либо что-то ещё. Обратите внимание что некоторые фильтры не могут работать с определёнными операторами. Например не может быть тип:(BMP И PNG), так как любой файл может быть только одного типа.
Например можно использовать запрос:
Данный запрос ищет изображения размером от 5 до 20 килобайт с именем файла, которое начинается с буквы m и в котором встречается слово little. При этом файл должен был быть изменён в течении марта 2014 года.
Как вы сами видите с такими возможностями можно легко искать файлы многолетней давности помня хоть какие-то мелочи о нём.
Несколько шаблонов
Для того чтобы вы лучше всё поняли и могли попробовать расширенный поиск Windows самостоятельно, мы решили сделать несколько наиболее часто использующихся шаблонов расширенного поиска, которые нередко могут пригодиться.
Как найти все файлы в папке?
Иногда человек хочет посчитать сколько файлов в той или иной папке и перед ним встаёт вопрос как это сделать. С помощью поиска Windows? Но тогда что вводить? Вводимое берёт начало у регулярных выражений и те кто знает не по наслышке что это такое уже догадался что за символ нужно вписать в поисковое поле.
В поисковое поле нужно ввести: * (Звёздочку).
Как найти все файлы одного типа (Расширения)?
Если вы хотите найти например только картинки используйте фильтр тип:картинка, а если вы желаете найти файлы определённого расширения, тогда можно использовать либо *.jpeg либо тип:JPEG.
Как найти файлы созданные в определённое время?
Для этого вам нужно использовать фильтр датасоздания:ДД/ММ/ГГГГ. О нём написано выше. Вы также можете ставить фильтр не по точному времени создания файла, а по промежутку. Например с сентября 2011 по декабрь 2012. О правильной постановке поискового запроса с таким фильтром, написано выше.
Как найти файлы определённого размера?
Вам нужно использовать фильтр размер: и указать необходимый размер файла в килобайтах, мегабайтах или гигабайтах. О том как можно искать в диапазоне размеров и как правильно указывать размер искомых файлов, вы можете прочитать выше.
Мы очень надеемся что данный материал вам пригодится, а если вам есть что дополнить, тогда пишите в комментариях.
You have no rights to post comments
