当我想使用 Java 删除存储库中的文件时遇到问题。我想做的是检查存储库是否存在,如果存在我想删除它包含的所有文件。 这是我的代码:
File f = new File(this.pathToFolder);
if (f.exists() && f.isDirectory()) {
for (int i = 0; i < f.listFiles().length ; i++) {
f.listFiles()[i].delete();
}
}
else {
f.mkdir();
}
但问题是有时它不会删除文件。我的猜测是因为我要删除的文件有一个奇怪的标题,例如:1.20.36579.55485875 它们是我下载的文件,我无法选择它们的名称。
现在我尝试了类似的东西:
File f = new File(this.pathToFolder);
if (f.exists() && f.isDirectory()) {
int i = 0;
while (f.listFiles().length != 0) {
boolean remove = f.listFiles()[i].delete();
System.out.println(remove);
}
}
else {
f.mkdir();
}
在控制台中,我得到了很多“假”(大约 15 个),然后最终得到了一个真。
我不明白为什么会这样。也许你们中的一些人会有想法。
谢谢, 瓦茨拉夫
最佳答案
您的代码的问题是您在删除文件时修改了 listFiles() 数组,因此数组的大小在每次循环中都在缩小。
试试这个
for (File file : f.listFiles()) {
file.delete();
}
关于java - 删除文件(奇怪的扩展名),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50556091/