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().
在使用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()