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

Sen*_*rJD 7 java io file delete-file

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

例如,我应该能够删除文件,C:/file.txt但我永远不能删除C:/Computer,My Documents等等.

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

Ale*_*exR 10

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

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

  • +1优秀的解决方案,但它实际上是`file.getParentFile().canWrite()`. (4认同)

Pet*_*eti 5

在使用NTFS和Java 7(Oracle JDK)的Windows 7 64位框中,唯一对我有效的方法是

boolean canDelete = file.renameTo(file)
Run Code Online (Sandbox Code Playgroud)

这出奇的简单,并且也适用于文件夹,该文件夹在“某处下方”有“打开”或“锁定”文件。

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

  • 应该注意的是,该函数的行为取决于平台。 (2认同)