我在Mac上编写了一个Java小工具,以删除文件file [1] .jpg之类的重复文件。之后,我想快速对其进行修改,以便也删除文件file(1).png之类的文件。我在Regex中犯了一个小错误,然后又发生了第二个错误,即信任自己并认为不需要测试它。 现在我的桌面上没有文件了。
java只是删除指向文件的指针还是将文件移动到某处以便我可以恢复已删除的文件吗?他们不在垃圾箱中。有什么方法可以恢复这些文件?
import java.util.regex.*;
import java.util.List;
import java.util.ArrayList;
public class DuplicateFilesDelter{
public static void main(String [] args){
if(args.length!=0){
final File folder = new File(args[0]);
List<File> filesToDelete = new ArrayList<File>();
if(folder.isDirectory()&& folder.exists()){
try{
File[] files = folder.listFiles();
int duplicates = 0;
for(File file : files){
String name = file.getName();
if(Pattern.matches(".*\\[[1-9]\\].*",name)|| Pattern.matches(".*([1-9]).*",name)){
filesToDelete.add(file);
duplicates++;
}
}
System.out.println("Deleting " + duplicates + " duplicates from " + files.length);
int deleted = 0;
for(File f : filesToDelete){
try{
System.out.println("Delting " + f.getName() );
f.delete();
deleted++;
}catch(Exception e){}
}
files = folder.listFiles();
System.out.println("Deleted " + deleted + " Files from " + filesToDelete.size());
System.out.println(files.length + " Files left");
}catch(Exception e){
System.err.println(e.getMessage());
}
}else{
System.out.println( args[0] + "is Directory : " + folder.isDirectory());
System.out.println( args[0] + "exists : " + folder.exists());
}
}
}
}