【问题标题】:Deleting certain folders within a directory java删除目录java中的某些文件夹
【发布时间】:2014-02-05 17:54:05
【问题描述】:

假设我在具有路径的目录中有一个文件夹名称列表

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.

【问题讨论】:

    标签: java path directory


    【解决方案1】:

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

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

    而不是getPath()

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-06
        • 2022-01-02
        • 2010-10-23
        • 2020-12-17
        • 2011-05-18
        • 2013-07-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多