删除目录和所有子目录中的特定文件

时间:2016-08-23 19:59:18

标签: java

使用此代码删除驱动器中所有目录和子目录中的特定文件但不起作用。请在这方面帮助我。 如果我想删除所有驱动器中的特定文件怎么办。

   static String refile= "input.txt";   
   public static void deletemyfile(File directory) {
    if (directory.exists()) {
           File[] files = directory.listFiles();
           if (null != files) {
                 for (int i = 0; i < files.length; i++) {
                        System.out.println(files[i].getName());
                        if (files[i].isDirectory()) {
                               deletemyfile(files[i]);

                        } else  { 

                            String temp ;
                            temp = files[i].getName();                              
                            if (temp==refile){

                            System.out.println("name matched and about to delete");

                            (files[i]).delete();


                        } else{

                            System.out.println("name not matched");
                        }



                        }
                 }
           }
    } else {System.out.println("wrong path");
    }
  }

1 个答案:

答案 0 :(得分:0)

尝试使用Java 8作为解决方案。以下内容将遍历给定目录中的所有子目录,并删除与给定文件名匹配的所有文件。

public static void deleteMyFile(File directory, String filename) {
    if(directory.isDirectory()) {
        try {
            Files.walk(directory.toPath())
                .filter(path -> path.getFileName().toString().equals(filename))
                .forEach(path -> path.toFile().delete());
        }
        catch(Exception e) {
            e.printStackTrace();
        }
    }
}