【发布时间】:2013-10-12 20:01:53
【问题描述】:
我用 C 构建自己的虚拟文件系统。
现在我想实现某种碎片整理方法,它会查找间隙并关闭它们。
因此,如果文件 1 的大小为 10,位于 X 位置,文件 2 的大小为 20,位于 Z 位置,我希望它移动到 Y 位置。
我现在的想法是取文件 2 的大小,从文件 1 的大小中减去它,然后使用结果将文件 2 向左移动,与结果一样高。
我有一个伪代码,因为我想不出一个可行的解决方案:
for (int i = 0; i < files; i++)
//look for inconsistencies/gaps.
if (found gaps)
file 2 - file 1 = x;
shiftfiletotheleft x bytes;
提前感谢您的想法和答案。
【问题讨论】:
-
“我如何为我发明的虚拟文件系统实现碎片整理”在此处方式超出了范围。尝试询问 Google 碎片整理的工作原理。