Узнать число файлов на диске C: [Win]

Devid

Функция проходит по всем файлам диска C: с помощью FindNextFile и делает с ними некоторую быструю операцию. Необходимо отображать прогресс (0%-100%) этого процесса. Есть два варианта:
1) Посчитать число файлов на диске, но это займет всего раза в 2-3 меньше времени, чем сама функция, если файлы считать с помощью FindNextFile. Можно ли их посчитать быстрее?
2) Посчитать свободное место на диске с помощью GetDiskFreeSpaceEx и суммировать размеры пройденных файлов.
Но это во-первых неточно отображает прогресс, т.к. функция не зависит от размера файлов.
Во-вторых GetDiskFreeSpaceEx считает занятым место, отведенное под корзину, хотя функция по этому месту не пройдет и прогресс в итоге будет меньше 100%.

Devid

Походу GetDiskFreeSpaceEx не считает корзину занятой, это я тупил с 64-ти битными числами. Но все равно метод с размером дурацкий.

tokuchu

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

psihodog

Можно как вариант число занятых инодов посмотреть. Наверняка в ФС должна быть информация эта дотсупна быстро.
+1
только ещё по маунт поинтам пройтись (если это нтфс)...

Andbar

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