我想删除位于本地计算机上的文件,与服务器计算机进行比较。
我的例子:
import java.io.*;
public static void main(String[] args) throws Exception {
Set<String > lmd5 = new HashSet<String>();
lmd5.add("4be1babb2f8cac64d96f8052c0942130");
lmd5.add("a7514d56f233a434c7066176933d708d");
lmd5.add("d41d8cd98f00b204e9800998ecf8427e");
lmd5.add("674e3b94be9ed5db8bafe75808385de1");
Set<String > dmd5 = new HashSet<String>();
dmd5.add("4be1babb2f8cac64d96f8052c0942130");
dmd5.add("a7514d56f233a434c7066176933d708d");
dmd5.add("d41d8cd98f00b204e9800998ecf8427e");
if(lmd5.equals(dmd5)){
System.out.println("OK");
}
else{
lmd5.removeAll(dmd5);
System.out.println("Obsoletes Files To Delete : " + lmd5);
File[] paths = baseModDirectoryFile.listFiles();
for(File path:paths){
FileInputStream fis = new FileInputStream(path);
String md5 = org.apache.commons.codec.digest.DigestUtils.md5Hex(fis);
if(lmd5.contains(md5) ){
File foundFile = path;
System.out.println("Obsolete File Found !");
try{
if(foundFile.delete()){
System.out.println("Obsolete File Deleted !");
}
else{
System.out.println("Obsolete File Not Deleted : Error !");
}
}catch(Exception e){
e.printStackTrace();
}
}
else{
continue;
}
}
}
}
在我的输出控制台中,出现了“找不到找到的文件”消息,但之后我收到消息:“过时的文件未删除”。我相信我在删除文件的功能中来得太晚,因为所有文件都已经过检查。
也许我必须审查这个职位,但我想得到一些建议。
谢谢!
答案 0 :(得分:3)
foundFile.delete()的价值是什么?
您是否有足够的权限删除文件?
您的文件可能被FileInputStream锁定了吗?