以编程方式确定文件的碎片状态

时间:2010-03-26 15:03:31

标签: .net filesystems low-level fragmentation defragmentation

是否可以确定特定文件的碎片状态(即此文件占用的不同碎片的数量)? 如果是这样,如何使用.net来完成?

动机是:我的应用程序将数据保存在FileStream中,按需更改其大小。这最终导致文件碎片化。我想监视文件的碎片状态,并在此基础上 - 决定是否应该复制文件并替换为新文件(从而对其进行“碎片整理”而不更改MFT)。

1 个答案:

答案 0 :(得分:3)

这完全属于“过早优化”类别。完全没有保证会导致碎片,光盘可能会有超过文件结束的未提交群集,而且经常会这样做。也许更重要的是,.NET框架中没有任何东西允许您检测或修复此问题。访问卷的MFT需要非托管代码和管理员权限。

对磁盘进行碎片整理是正常的机器维护任务。它在Win7中变得自动化了。