java file.delete() 返回 false 但 file.exists() 返回 true

标签 java file delete-file

当我试图从 java 代码中删除存在于 tomcat 服务器 conf/Catalina/localhost 中的文件时,file.delete() 总是返回 false。但是如果我通过 file.exists() 函数检查文件,它会返回 true。我没有任何异常(exception)。请帮助我们了解为什么会这样。解决方案是什么?

最佳答案

无法删除文件的原因有很多;它可能不存在,它可能是一个非空目录,您可能没有关闭所有使用它的资源,您的程序可能没有这样做的权限,仅举几例。

不幸的是File.delete()方法提供的关于原因的信息很少;这几乎取决于您四处寻找并弄清楚。但有个好消息;您首先不想使用 File

Java 7 引入了新的 java.nio.file包,这是一个更强大的文件访问 API。它提供了抽象的概念Path并将具体操作分成 Files类,特别是它提供了Files.delete()记录在案以引发明确的异常,描述删除可能失败的原因。

使用路径文件;你会很高兴你做到了。

关于java file.delete() 返回 false 但 file.exists() 返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15336565/

相关文章:

Java 绑定(bind)不匹配错误 - LinkedList

Java 8 Stream 确定文本文件中的最大计数

android - 如何在android中获取内部和外部sdcard路径

svn - 释放我的 SVN 存储库中的空间

java - 为什么此 Swing List 不显示其元素?

java - 如何关闭 log4j HTMLLayout 中的表格

java - java swing中的渲染问题

c - 你如何在C中的Epoch中获取文件的最后访问时间?

wix - 安装 MSI 之前删除文件和目录

svn - 无法验证路径锁定