如何检查是否可以删除 Java 中的文件?
例如,我应该能够删除文件C:/file.txt
,但我永远无法删除C:/
or Computer
、 orMy Documents
等。
可能重复中描述的解决方案对我不起作用。
如何检查是否可以删除 Java 中的文件?
例如,我应该能够删除文件C:/file.txt
,但我永远无法删除C:/
or Computer
、 orMy Documents
等。
可能重复中描述的解决方案对我不起作用。
删除文件需要文件父级的写权限,即文件存储的目录。java中的目录也由java.io.File
具有方法的类的实例表示canWrite()
。
因此,要检查文件是否可以删除,您应该调用file.getParent().canWrite()
.
在我使用 NTFS 和 Java 7(Oracle JDK)的 Windows 7 64 位机器上,唯一对我有用的是
boolean canDelete = file.renameTo(file)
这非常简单,也适用于文件夹,这些文件夹在“下方某处”有一个“打开”或“锁定”文件。
我尝试并产生误报的其他事情:获取 FileLock、File#canWrite、File#setLastModified ("touch")、file.getParent().canWrite()