Получение количества файлов в разделе - PullRequest
0 голосов
/ 06 апреля 2011

Я написал код в C ++ CLI, который может перебирать все файлы в системе.Я хочу знать, сколько файлов существует в системе программно, не считая файлы один за другим!Также ... Будет ли этот номер полезен для индикатора выполнения сканирования?

Ответы [ 2 ]

2 голосов
/ 07 апреля 2011

Если вы используете NTFS, вы можете вызвать FSCTL_GET_NTFS_VOLUME_DATA IoControl, чтобы получить целую кучу данных для вашего тома.Количество файлов будет не более MftValidDataLength / BytesPerFileRecordSegment.Помните, что это максимальное количество файлов, которое может быть на томе, поэтому фактическое число всегда будет меньше.

Я также надеюсь, что вы будете использовать FSCTL_ENUM_USN_DATA для чтения файлов, а не для обхода дерева каталогов (что является неточным и подверженным ошибкам).В этой теме есть пример того, как кто-то делает это в C #: http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/c1550294-d121-4511-ac32-31551497f64e/

1 голос
/ 06 апреля 2011

Это будет в значительной степени зависеть от используемой файловой системы (и административных привилегий, которыми обладает олицетворенный пользователь:))

Вы можете найти что-то здесь или вы можете дополнить свой вопрос более подробной информацией

...