我在使用NTFS和Java 7(Oracle JDK)的Windows 7 64位计算机上,唯一可靠的方法是:
boolean canDelete = file.renameTo(file)
这其实非常简单,也适用于包含“打开”或“锁定”文件的文件夹。
我尝试过其他方法但都产生了误报:获取文件锁、File#canWrite、File#setLastModified(“touch”)、file.getParent().canWrite()。
import java.nio.file.Files;
import java.nio.file.Path;
boolean canDelete = Files.isWritable(file.getParent())
C:/file.txt
这样的普通文件会抛出“访问被拒绝”的异常。 - SeniorJD