8

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

例如,我应该能够删除文件C:/file.txt,但我永远无法删除C:/or Computer、 orMy Documents等​​。

可能重复中描述的解决方案对我不起作用。

4

2 回答 2

11

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

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

于 2013-05-14T09:36:17.803 回答
5

在我使用 NTFS 和 Java 7(Oracle JDK)的 Windows 7 64 位机器上,唯一对我有用的是

boolean canDelete = file.renameTo(file)

这非常简单,也适用于文件夹,这些文件夹在“下方某处”有一个“打开”或“锁定”文件。

我尝试并产生误报的其他事情:获取 FileLock、File#canWrite、File#setLastModified ("touch")、file.getParent().canWrite()

于 2015-06-02T12:07:14.687 回答