2013-11-14 38 views

回答

1

正如jtanhlborn指出的,canWrite()不是你要找的。检查File是否被锁定的快速方法是尝试使用renameTo修改文件名并查看您是否成功。例如:

File file = new File("testFile.png"); 
boolean fileLocked = !file.renameTo(file); 

在该文件重命名成功的情况下,将renameTo回到true并锁定将false。当然,文件名将不会被修改,因为您已将其重命名为其原始名称。

+0

你是指实际上改变文件名或者只是测试锁定是否返回真或假?我不想改变名字。 –

+0

@ Dev-Ria添加了一些东西来澄清。尽管执行了重命名操作,但最终结果并没有改变名称。 – sushain97

+0

确定如此''file.renameTo(file)'表示它是否无法重命名文件。所以filelocked = false意味着它被锁定? –

3

canWrite()是一个权限测试(即基于文件元数据的静态检查)。它与文件内容或任何文件锁无关。

+0

添加了一个链接到javadoc;) – 2013-11-14 17:15:23

+0

我已经看到它被用来测试一个文件是否被另一个进程在删除之前使用。这是测试一个文件是否被另一个进程使用的最好方法吗? –

+0

@ Dev-Ria - 正如我已经指出的那样,不,那是毫无意义的。 – jtahlborn

相关问题