Я писал небольшой инструмент Java на своем Mac для удаления дубликатов файлов, таких как 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());
}
}
}
}