我正在尝试从我的目录中删除所有文件(不删除目录本身),我查看了stackoverflow,我找到的解决方案都没有工作,也没有我自己的代码。它似乎删除了一些文件,但对于其他文件,它没有删除,我不明白为什么。 dewi1,dewi2,dewi3等文件都是彼此的副本,但重命名后,运行此代码时,这些文件都没有打开或正在使用。
File directory = new File("C:/Users/TUDelftSID/Downloads/Primal-PvM/Primal-PvM/pox/data/logs/Packetlogs");
File[] allFilesInDir = directory.listFiles();
for (int K = 0; K < allFilesInDir.length; K++) {
if (allFilesInDir[K].delete()) {
System.out.println("Succesfully Deleted: " + allFilesInDir[K] + " !");
} else {
System.out.println("Failed to delete " + allFilesInDir[K] + " !");
}
}
这就是我所使用的,据我所知,文件应该全部删除;不过这就是结果。
为什么会这样?
我已经尝试了这个:
for(File file: directory.listFiles())
if (!file.isDirectory())
file.delete();
这一个:
Arrays.stream(directory).listFiles()).forEach(File::delete);
两者都不起作用:/,如何解决这个问题?
答案 0 :(得分:0)
Gerben - 我发现您的代码没有任何问题。
JavaDoc推荐这个 -
public boolean delete() 删除此抽象路径名表示的文件或目录。如果此路径名表示目录,则该目录必须为空才能被删除。 请注意,Files类定义了删除方法,以便在无法删除文件时抛出IOException。这对于错误报告和诊断无法删除文件的原因非常有用。
尝试使用https://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html 并查看您是否收到任何IOException。