实用磁盘差异工具与C#深入探索
1. 实用磁盘差异工具(DiskDiff)
1.1 切换使用簇大小
在获取磁盘簇大小的方法实现后,可对主程序进行修改以使用该功能。代码将支持显示文件的已分配大小和使用大小。
首先是对FileNode类的修改,它将存储这两种大小,并在构造函数中确定其值:
this.sizeUsed = file.Length; long clusterSize = ClusterSize.GetClusterSize(file.FullName); this.size = ((sizeUsed + clusterSize - 1) / clusterSize) * clusterSize;为了计算文件的已分配大小,需要将文件大小向上取整到簇大小的下一个倍数。例如,假设簇大小为512字节:
- 1字节的文件将占用512字节:((1 + 511) / 512) * 512
- 512字节的文件将占用512字节:((512 + 511) / 512) * 512
- 513字节的文件将占用1024字节:((513 + 511) / 512) * 512
更新FileNode对象后,还可以更新DirectoryNode类。可以添加SizeUsed属性,并添加Updat