如何检查我是否可以删除文件?

时间:2013-05-14 09:13:17

标签: java file io delete-file

我如何检查我可以用Java删除文件?

例如,我应该能够删除文件C:/file.txt,但我从不将能够删除C:/或{{1 },或Computer等。

possible duplicate中描述的解决方案对我不起作用。

2 个答案:

答案 0 :(得分:10)

删除文件需要文件父级的写权限,即存储文件的目录。 java中的目录也由具有方法java.io.File的类canWrite()的实例表示。

因此,要检查文件是否可以删除,您应该拨打file.getParent().canWrite()

答案 1 :(得分:5)

在使用NTFS和Java 7(Oracle JDK)的Windows 7 64位盒子上,唯一对我有用的东西是

boolean canDelete = file.renameTo(file)

这非常简单,也适用于文件夹,它们“低于”“开放”或“锁定”文件。

我尝试过的其他事情并产生了误报:获取FileLock,File#canWrite,File#setLastModified(“touch”),file.getParent()。canWrite()