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

20 浏览
0 Comments

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

如何在 Java 中检查删除文件的权限?

例如,如果另一个程序中打开了文件test.txt,我就无法删除它。我必须在真正删除之前知道它,所以我不能这样做:

if (!file.delete()) { ... }

srcFile.canWrite()也不起作用。

admin 更改状态以发布 2023年5月24日
0
0 Comments

使用写锁打开文件。

查看这里 http://download.oracle.com/javase/6/docs/api/java/nio/channels/FileLock.html

FileChannel channel = new RandomAccessFile("C:\\foo", "rw").getChannel();
// Try acquiring the lock without blocking. This method returns
// null or throws an exception if the file is already locked.
FileLock lock = channel.tryLock();
// ...  
// release it
lock.release();

0
0 Comments

在我的Windows 7 64位NTFS和Java 7的计算机上,唯一可靠的解决方法是

boolean canDelete = file.renameTo(file)

这个方法非常简单,而且也适用于"下面有个"打开或锁定文件的文件夹。

我尝试过其他方法,但都会产生错误的结果,例如获取文件锁、File#canWrite、File#setLastModified("touch")等。

0