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

Java 如何检查是否可以删除文件?,java,file,io,delete-file,Java,File,Io,Delete File,如何检查是否可以删除Java中的文件 例如,我应该能够删除文件C:/file.txt,但我从不将能够删除C:///code>或计算机,或我的文档等 中描述的解决方案不适用于我。删除文件需要文件父级的写入权限,即文件存储的目录。java中的目录也由类java.io.File的实例表示,该类具有方法canWrite() 因此,要检查文件是否可以删除,您应该使用NTFS和Java 7(Oracle JDK)在我的Windows 7 64位机上调用file.getParent().canWrite(),

如何检查是否可以删除Java中的文件

例如,我应该能够删除文件
C:/file.txt
,但我从不将能够删除
C:///code>或
计算机
,或
我的文档


中描述的解决方案不适用于我。

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


因此,要检查文件是否可以删除,您应该使用NTFS和Java 7(Oracle JDK)在我的Windows 7 64位机上调用
file.getParent().canWrite()

,唯一对我有效的方法是

boolean canDelete = file.renameTo(file)
这是令人惊讶的简单,也适用于文件夹,其中有“下面某处”一个“打开”或“锁定”文件


我尝试过的其他事情产生了误报:获取文件锁、文件#canWrite、文件#setLastModified(“touch”)、文件.getParent().canWrite()

“可能重复的解决方案对我不起作用。”请解释原因?@Marco Forberg有时会抛出一个
访问被拒绝
异常,用于常见文件,如
C:/file.txt
+1极好的解决方案,但实际上它是
文件.getParentFile().canWrite()
。应该注意,此函数的行为取决于平台。