Общее количество файлов на томе NTFS?

Я ищу быстрый способ считать общее количество файлов - и каталогов - на любом томе NTFS. (Специальным способом. Таким образом, учитывая любое случайное поле, не специально подготовленный объем.)

Примечание: Это не о файлах на каталог, просто полная сумма файлов на объеме.

В настоящее время единственный способ, которым я знаю, состоит в том, чтобы открыться, корневая папка диска в Windows Explorer выбирают все элементы, щелкают правой кнопкой, чтобы выбрать Properties и затем ожидать (и ожидать), пока проводник не считал все элементы.

Существует ли лучший/быстрее путь?

7
задан 20.04.2011, 10:48

3 ответа

В командной строке DOS введите следующую команду:

  • dir \/s/a/w

(Переключатель "/s" включает рекурсивный поиск на всех подкаталогах {с большинством утилит Unix, это обычно - переключатель "-R"}, переключатель "/a" считает все файлы независимо от Атрибутов, и "/w" отображает многократные въезды на одной строке так, чтобы отчет закончился немного быстрее. Изменение "\" к желаемому пути Вы хотите начать с; для другой буквы диска, такой как диск D:, измените его на "D:\" для поиска того диска.)

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

8
ответ дан 07.12.2019, 14:30

Если Вы просто хотите верхнюю границу (приближение):

Ввести fsutil fsinfo ntfsinfo C: в командной строке читайте Mft Valid Data Length значение, и делит его на 1 024.

Обратите внимание, что это число является примерно "меткой паводка" количества файлов и папок, которые должна была отслеживать данная файловая система. Как пример, если Вы заполнили свой диск 2 миллионами крошечных временных файлов, затем впоследствии, удалил их, Mft Valid Data Length не уменьшится, и значение будет больше, чем фактическое значение приблизительно 2 миллионами.

При необходимости в точном значении существуют более быстрые пути, но необходимо было бы программировать что-то (я не знаю ни о каких программах там, которые точно делают это)... необходимо было бы считать файл $MFT и проанализировать его вручную, то выяснить, которые записи файла и которые записи нефайла... это существенно быстрее, чем "нисходящий" подход Windows (потому что создание иерархии вверх дном использует только MFT и ничто иное), но это никоим образом не легко.

Если Вы - программист, но Вы хотите менее болезненное (хотя медленнее) путь, Вы могли также просто записать программу, которая звонит NtQueryDirectoryFile пересекать папки вместо значения по умолчанию FindFirstFile/FindNextFile функции... это может быть намного быстрее, но немного более хитрым.


Просто знайте, что понятие самого "файла" на самом деле довольно хитро. Это довольно возможно (и Windows даже делает это по умолчанию) иметь несколько hardlinks в тот же файл, и они оба так же "реальны", как какой-либо другой файл... проводит Вас подсчет их несколько раз?

Или у Вас могут быть соединения или символьные ссылки, которые указывают на другие места... они должны считаться или нет?

Это не ясный процесс, поскольку это могло бы казаться сначала, так знать об этом.

Надеюсь, что помог..


Править

Вы могли работать

 robocopy /L /E C:\ C:\Temp > "%Temp%\Temp.log"

и затем осмотрите статистическую величину "Файлов", которую это показывают.:P

9
ответ дан 07.12.2019, 14:30

Простой ответ; загрузите Все. Это значит Вас, супер быстро. Также делает ~realtime, ищет Вас. Это - бесплатное программное обеспечение и не содержит дополнительного crapola.

3
ответ дан 07.12.2019, 14:30

Теги

Похожие вопросы