我在C ++ CLI中编写了一个代码,可以遍历系统中的所有文件。我想以编程方式知道系统中存在的文件数量,而不是逐个计算文件! 另外......这个数字在扫描进度条时会有用吗?
答案 0 :(得分:2)
如果您使用的是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 :(得分:1)
这在很大程度上取决于正在使用的文件系统(以及模拟用户持有的管理权限:))
您可能会找到here的内容,或者您可以通过更多详细信息来增强您的问题