java file.delete() 返回 false 但 file.exists() 返回 true
2022-09-02 08:54:00
当我尝试从java代码中删除tomcat server conf/Catalina/localhost中存在的文件时,file.delete()总是返回false。但是如果我通过file.exists()函数检查文件,它将返回true。我没有任何例外。请帮助我们为什么会发生这种情况。解决方案是什么?
当我尝试从java代码中删除tomcat server conf/Catalina/localhost中存在的文件时,file.delete()总是返回false。但是如果我通过file.exists()函数检查文件,它将返回true。我没有任何例外。请帮助我们为什么会发生这种情况。解决方案是什么?
无法删除文件的原因有很多;它可能不存在,它可能是一个非空目录,您可能尚未关闭使用它的所有资源,并且您的程序可能没有权限这样做,仅举几例。
不幸的是,File.delete()
方法提供了很少的信息来说明为什么;这几乎取决于你四处寻找并弄清楚它。但是有个好消息;你一开始就不想使用。File
Java 7引入了新的java.nio.file
包,这是一个更健壮的文件访问API。它提供了抽象 Path
的概念,并将具体操作分离到 Files
类中,特别是它提供了 Files.delete(),
该类被记录下来以引发描述删除可能失败原因的明确异常。
使用和 ;你会很高兴你做到了。Path
Files
当我尝试从java代码中删除tomcat server conf/Catalina/localhost中存在的文件时,file.delete()总是返回false。但是如果我通过file.exists()函数检查文件,它将返回true。
您很可能没有删除服务器上的文件的权限。检查您的权限。
f.delete()
返回 false,这意味着它不是/无法删除,并返回 true,因此文件存在但无法删除。f.exists()