假设我在具有路径
的目录中有一个文件夹名称列表 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.
答案 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()方法的方法。您可能需要使用它而不是路径。在某些情况下,我认为路径只显示文件名,或相对路径不是预期的。