删除目录java中的某些文件夹

时间:2014-01-16 17:10:23

标签: java path directory

假设我在具有路径

的目录中有一个文件夹名称列表

C:\Users\Desktop\Application\('folder_names')

如何删除此目录中的某些文件夹,并将我存储的文件保存在列表中。

即。我有一个字符串列表:

String[] deleteList = "folder 1, folder 2, folder 3";

并在目录中:

C:\Users\Desktop\Application\我只想删除folder 2

如何使用字符串列表而不是显式调出该文件夹?

到目前为止,我有:

更新:

File[] deleteList = directory.listFiles(fileFilter);
        for (File file : deleteList) {
            if (file.isDirectory()) {
                System.out.println(file.getPath());
                if (file.getPath()
                        .equals("C:\\Users\\Desktop\\Application\\folder 2")) {
                    System.out.println("got folder");
                                            FileUtils.deleteDirectory(file);
                } else {
                    System.out.println("Didn't get it.");

                }
            }
        }

输出

C:\Users\U201165\Desktop\Newfolder\Newfolder(2)
got folder
C:\Users\U201165\Desktop\Newfolder\Newfolder(3)
Didn't get it.
C:\Users\U201165\Desktop\Newfolder\Newfolder(4)
Didn't get it.
C:\Users\U201165\Desktop\Newfolder\Newfolder(5)
Didn't get it.

2 个答案:

答案 0 :(得分:1)

您可能正在从getPath()获得相对路径。要确保从File对象获取绝对路径,请使用:

if (file.getAbsolutePath().equals("C:\\Users\\Desktop\\Application\\folder2")) ...

而不是getPath()

答案 1 :(得分:0)

您的System.out正在显示文件对象,但在您的equals方法中,您正在使用file.getPath()。将file.getPath()放在system.out中,这样您就可以看到实际比较的内容。 File对象有一个类似getExplicitPath()方法的方法。您可能需要使用它而不是路径。在某些情况下,我认为路径只显示文件名,或相对路径不是预期的。