我想提供一种识别大文件在一定程度上碎片化的方法,并在用户执行碎片整理时提醒用户.此外,我想向他们展示一个视觉显示,展示文件如何被实际分解成多个磁盘.
我不需要知道如何计算它是多么分散,或者如何使视觉显示.我需要知道的是两件事情:1)如何识别包含任何特定给定文件的任何磁盘上的特定集群,以及2)如何识别磁盘上的集群总数.我本来需要一个包含这个文件的所有集群的列表,以及这些集群所在的磁盘上的哪个.
大多数碎片整理实用程序都有一个视觉显示,显示文件如何分布在磁盘上.我的显示屏将显示一个特定文件如何分割到磁盘的不同区域.我只需要知道如何检索必要的数据来告诉我文件的集群/扇区位于磁盘上,所以我可以进一步确定它是多么分散.
您可以使用
原文链接:/windows/363761.htmlDeviceIoControl
功能与
FSCTL_GET_RETRIEVAL_POINTERS
控制代码.
The FSCTL_GET_RETRIEVAL_POINTERS operation retrieves a variably sized data structure that describes the allocation and location on disk of a specific file. The structure describes the mapping between virtual cluster numbers (VCN offsets within the file or stream space) and logical cluster numbers (LCN offsets within the volume space).