我如何检查我可以用Java删除文件?
例如,我应该能够删除文件C:/file.txt
,但我从不将能够删除C:/
或{{1 },或Computer
等。
possible duplicate中描述的解决方案对我不起作用。
答案 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()