查找碎片文件

时间:2013-05-20 16:30:19

标签: java filesystems

我似乎找不到通过Java检测碎片文件的方法。我假设文件系统部分将通过Java抽象并变得简单,但似乎无法从Google获得任何结果。

请告知如何通过Java专门读取和修复碎片文件的低级文件系统数据。

1 个答案:

答案 0 :(得分:2)

您必须设计一个Java程序但调用Java Native Interfaces或我的偏好 - 自定义进程来执行Java之外的实际工作。所以任何解决方案都将部分取决于操作系统。虽然某些解决方案可以在多个操作系统上运行,例如linux / unix风格。

例如在Windows上可以使用http://technet.microsoft.com/en-us/sysinternals/bb897428.aspx从java程序中调用它(使用ProcessBuilder生成外部进程)

我在我的盒子上使用它,它在100%的时间都不起作用,所以你甚至可能必须有一个多策略 - 使用方法1,在try-catch中调用它,所以如果它有错误你可以尝试方法2 ...

在我的Windows笔记本电脑上调用带参数的进程:

 c:/apps/win/sysinternals/Contig.exe -a -v D:/u/a.jpg 

输出

  

Contig v1.7 - 使文件连续版权所有(C)1998-2012 Mark   Russinovich Sysinternals - www.sysinternals.com

     

------------------------处理D:\ u \ a.jpg扫描文件......

     

[Cluster] Runlength [0] 2

     

文件大小:5603字节D:\ u \ a.jpg是1个片段   ------------------------摘要:        处理的文件数:1        平均碎片:1个frags / file

解析出来,你有部分答案。您将不得不进入每个OS API以获取碎片的更多细节。开源的碎片化代码将是一个很好的起点。他们有你想要的东西加上你可以压制的实际去碎片的额外步骤。

相关问题