java - 尝试使用 file.delete() 时不会删除文件
问题描述
我试图从我的目录中删除所有文件(不删除目录本身),我在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);
两者都不起作用:/,如何解决这个问题?
解决方案
Gerben - 我认为您的代码没有任何问题。
JavaDoc 推荐这个 -
public boolean delete() 删除此抽象路径名表示的文件或目录。如果此路径名表示一个目录,则该目录必须为空才能被删除。请注意,Files 类定义了 delete 方法以在无法删除文件时抛出 IOException。这对于错误报告和诊断无法删除文件的原因很有用。
尝试使用https://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html 并查看是否收到任何 IOException。
推荐阅读
- html - HTML / CSS | 滚动条 - 更改 div 和拇指悬停的颜色
- operating-system - 操作系统如何处理外围数据缓冲区?
- flutter - 连续两列自动缩放图像?
- angular - 单元测试中未调用 setTimout 中的函数
- for-loop - 减少几个 do 循环的计算时间以计算总和
- c# - GeckoFX45 与 System.AccessViolationException 崩溃
- amazon-web-services - Athena 返回“返回零记录”
- symfony - 无法自动装配参数:Symfony 4
- python - 查找列表中的第 n 次幂
- android - 我想在使用 kotlin 协程的 android 超时后取消一个函数,但它不起作用