尝试使用file.delete()时不会删除文件

时间:2018-05-10 04:37:13

标签: java file delete-file

我正在尝试从我的目录中删除所有文件(不删除目录本身),我查看了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] + " !");
        }
    } 

这就是我所使用的,据我所知,文件应该全部删除;不过这就是结果。 enter image description here

为什么会这样?

我已经尝试了这个:

for(File file: directory.listFiles()) 
if (!file.isDirectory()) 
    file.delete();

这一个:

Arrays.stream(directory).listFiles()).forEach(File::delete);

两者都不起作用:/,如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

Gerben - 我发现您的代码没有任何问题。

JavaDoc推荐这个 -

public boolean delete() 删除此抽象路径名表示的文件或目录。如果此路径名表示目录,则该目录必须为空才能被删除。 请注意,Files类定义了删除方法,以便在无法删除文件时抛出IOException。这对于错误报告和诊断无法删除文件的原因非常有用。

尝试使用https://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html 并查看您是否收到任何IOException。