如何在Mac中恢复使用File.delete()方法删除的文件

我在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());
            }
        }
    }
}
dunhuangheisha 回答:如何在Mac中恢复使用File.delete()方法删除的文件

  

Java是仅删除指向文件的指针还是将文件移动到某处以便我可以恢复已删除的文件?

Java通过进行unlink系统调用来告诉操作系统在MacOS / Linux / UNIX上删除文件。

  

它们不在垃圾箱中。有什么方法可以恢复这些文件?

不是在Java中。您也许可以使用文件恢复工具来恢复它们。

本文链接:https://www.f2er.com/3132657.html

大家都在问