10

我想提供一种方法来识别大文件何时碎片化到一定程度,并在用户应该执行碎片整理时提醒用户。此外,我想向他们展示一个可视化的展示,展示文件实际上是如何在磁盘上分解成碎片的。

我不需要知道如何计算它的碎片化程度,或者如何进行视觉展示。我需要知道两件事:1)如何识别包含任何特定给定文件片段的任何磁盘上的特定集群,以及 2)如何识别该磁盘上的集群总数。我基本上需要一个包含该文件片段的所有集群的列表,以及每个集群在磁盘上的位置。

大多数碎片整理实用程序都有一个可视化的显示,显示文件是如何分布在磁盘上的。我的显示器将显示一个特定文件如何被拆分到磁盘的不同区域。我只需要知道如何检索必要的数据来告诉我文件的集群/扇区在磁盘上的位置,这样我就可以进一步确定它的碎片程度。

4

1 回答 1

11

您可以将该DeviceIoControl功能与FSCTL_GET_RETRIEVAL_POINTERS控制代码一起使用。

FSCTL_GET_RETRIEVAL_POINTERS 操作检索一个可变大小的数据结构,该结构描述了特定文件在磁盘上的分配和位置。该结构描述了虚拟集群号(文件或流空间内的 VCN 偏移量)和逻辑集群号(卷空间内的 LCN 偏移量)之间的映射。

于 2012-10-05T21:54:44.207 回答