【发布时间】:2012-09-26 22:19:56
【问题描述】:
我想提供一种方法来识别大文件何时碎片化到一定程度,并在用户应该执行碎片整理时提醒用户。此外,我想向他们展示一个可视化的展示,展示文件实际上是如何在磁盘上分解成碎片的。
我不需要知道如何计算它的碎片化程度,或者如何进行视觉展示。我需要知道两件事:1)如何识别包含任何特定给定文件片段的任何磁盘上的特定集群,以及 2)如何识别该磁盘上的集群总数。我基本上需要一个包含此文件片段的所有集群的列表,以及每个集群在磁盘上的位置。
大多数碎片整理实用程序都有一个直观的显示,显示文件是如何分布在磁盘上的。我的显示器将显示一个特定文件如何被拆分到磁盘的不同区域。我只需要知道如何检索必要的数据来告诉我文件的簇/扇区在磁盘上的位置,这样我就可以进一步确定它的碎片程度。
【问题讨论】:
-
这是一个基本的操作系统问题(参见NTFS)。有关磁盘上文件物理位置的信息涉及(非常低级别)浏览 NTFS 信息(特别是 MFT - 请参阅链接页面中的
Metafiles)。这是一个非常广泛的问题。研究链接并研究 NTFS,然后您可以回来提出具体、简洁的问题。 :-) 目前,由于范围广泛,投票结束并不是一个真正的问题。 (不过,我没有投反对票。) -
social.msdn 上的类似讨论...:social.msdn.microsoft.com/Forums/en-AU/vcgeneral/thread/…(我也没有投反对票。投反对票的人发表评论当然很好!)
-
还有一个类似的线程 (codeproject.com/Questions/425710/…),他们说如果没有低级内核驱动程序就无法做到这一点。
-
@DavidHeffernan 这与获取此信息的过程有关吗?它将显示在图形视图中,显示各种文件是如何在磁盘上的扇区中保存/拆分的。
-
启动here 获取有关您需要传递给DeviceIOControl 的结构类型的信息,以便开始检索有关扇区数的信息。它甚至没有触及关于物理文件位置的部分。祝你好运。
标签: windows winapi filesystems ntfs