【发布时间】:2014-08-04 12:57:36
【问题描述】:
我想做一个类似zerofree for linux的工具。我想通过分配一个大文件而不将其归零来做到这一点,寻找非零块并重写它们。
如果有管理员权限,uTorrent 可以这样做:http://www.netcheif.com/Articles/uTorrent/html/AppendixA_02_12.html#diskio.no_zero,但它是封闭源代码。
【问题讨论】:
-
你要的函数是
SetFileValidData。 -
嘿,编辑了我的答案并包含了更合适的信息,所以如果还没有找到解决方案,你应该看看。
-
如果我理解正确,zerofree 与您想要的完全相反:“在 [...] 文件系统中找到未分配的非零块并用零填充它们”。不?实际上,您确实希望将数据归零(通过创建一些大型内存映射是最简单和最快的)。不过,您似乎确实想在稀疏文件中创建“洞”?
-
@Damon 重点是:99% 的可用空间可能已经为零。我不想再重写了。防止动态虚拟磁盘映像增长尤为重要。