file.delete()返回false偶数文件是可写的

时间:2017-09-08 17:06:40

标签: java eclipse file directory fileutils

我正在尝试将文件复制到目录然后删除它,但是file.delete()一直返回false

这是我的代码:

for (File file : list) {
            if (!file.isDirectory()) {
                try {
                    FileUtils.copyFileToDirectory(file, path);
                    file.setWritable(true);                         
                    System.out.println(file.delete());
                    if(file.exists()){
                        file.deleteOnExit();
                    }
                } catch (IOException e) {
                    System.out.println(e);
                }
            }
        }

1 个答案:

答案 0 :(得分:1)

很少有想法可以解决这个问题。

  • 如果要删除文件,请先关闭所有连接和流。之后删除文件
  • 确保您拥有文件的删除权限
  • 确保您在正确的目录中。如果删除不起作用,请尝试使用绝对路径删除文件。该文件的路径可能不正确。
  • 使用Files.delete。如果删除失败,delete(Path)方法将删除该文件或引发异常。例如,如果文件不存在,则抛出NoSuchFileException。您可以捕获异常以确定删除失败的原因,如下所示:请参阅Oracle文档here

    try {
        Files.delete(path);
    } catch (NoSuchFileException x) {
        System.err.format("%s: no such" + " file or directory%n", path);
    } catch (DirectoryNotEmptyException x) {
        System.err.format("%s not empty%n", path);
    } catch (IOException x) {
        // File permission problems are caught here.
        System.err.println(x);
    }