当我试图从java代码中删除一个存在于tomcat服务器conf/Catalina/localhost中的文件时,file.delete()总是返回false 。但如果我通过file.exists()函数检查文件,它将返回true。我没有得到任何例外。请帮助我们为什么发生这种情况。这是什么解决方案?java file.delete()返回false但file.exists()返回true
回答
当我试图删除文件这是目前在Tomcat服务器 的conf /卡塔利娜/本地主机从Java代码然后file.delete()总是 返回false。但是,如果我通过file.exists()函数检查文件 它将返回true。
很有可能您没有权限删除服务器上的文件。检查您的权限。
f.delete()
返回false表示它没有/不能被删除,并且f.exists()
返回true,所以文件存在但不能被删除。
这意味着该文件存在,但你的java程序不必须删除that.That是许可,为什么要删除函数返回假
Returns: true if and only if the file or directory is successfully deleted; false otherwise
那么请告诉我如何为java进程分配权限来删除文件。因为我不得不通过代码删除文件。 – vishal 2013-03-11 10:49:53
有任何数量的原因有一个文件无法被删除;它可能不存在,它可能是非空目录,您可能没有关闭所有使用它的资源,并且您的程序可能没有权限这么做,仅举几例。
不幸的是,File.delete()
方法提供的原因很少;这很大程度上取决于你去找出并解决问题。但是有好消息。你首先不想使用File
。
Java 7引入了新的java.nio.file
包,这是一个更强大的文件访问API。它提供了摘要Path
的概念,并将具体操作分为Files
类,特别是它提供了Files.delete()
,它被记录为引发清楚的例外,描述删除可能失败的原因。
使用Path
和Files
;你会很高兴你做到了。
在删除它之前,您必须关闭该流。
e.g -
fileInputStream.close();
file.delete();
如果目录非空,然后File.delete()
方法将返回false而不发出一个错误。
删除它之前,您必须先清理目录。
- 1. File.delete()返回false
- 2. File.Exists返回True时应该是False
- 3. C#File.exists返回false
- 4. 应该返回true,但返回false?
- 5. File.Exists()返回false,但不是在调试
- 6. file.exists()返回false,但图像uri存在
- 7. 文件存在但java file.exists()但返回false
- 8. 对于不存在的文件,file.delete()是否返回true或false?
- 9. in_array返回false时应该返回true
- 10. JQuery返回true后返回false?
- 11. 任意返回True或False
- 12. File.Exists在UnitTest上下文中返回false
- 13. File.Exists在Active Directory环境中返回False
- 14. removeAttribute不返回true或false
- 15. Sweetalert2不返回true/false
- 16. jConfirm不返回true或false
- 17. 为什么'Files.exists'返回true,但'File.exists'返回false?它只发生在多字节字符的文件名中
- 18. Resultset.next返回true,但不会返回
- 19. SwiftyJSON返回UNKNOWN,但.exists()返回TRUE?
- 20. file.delete()返回true,但文件仍然存在
- 21. Java Socket返回True
- 22. 在IDE的IntelliJ在Java file.exists()始终返回false
- 23. file.exists()在java/mac电脑上错误地返回false?
- 24. 的Jython返回false gettattr([ALIST], '__ reversed__')而Python返回True
- 25. 调整返回true/false的方法
- 26. mail()失败,但返回true
- 27. Activity.isFinishing()返回true但错误
- 28. 有没有可能isFinishing()在onPause()中返回false,但在onStop()中返回true?
- 29. 为什么此条件返回false,但在主函数中返回true?
- 30. Laravel 5.2,auth :: check在登录后返回true,但在重定向后返回false
如果file.delete()返回false,则表示它未被删除。所以file.exists()将返回true。没有任何错误 – rajesh 2013-03-11 10:45:08
检查文件权限。 – m0skit0 2013-03-11 10:45:11
文件存在,但无法删除。就这样。 – Ingo 2013-03-11 10:45:33