【发布时间】:2010-12-03 22:42:35
【问题描述】:
我想从一个文件中读取然后删除它,同时阻止其他进程访问它。这如何实现?
FileLock 不起作用,因为您必须先释放锁并关闭通道,然后才能调用 File.delete()。我担心的是,在释放锁定后,另一个进程可能会锁定它并在文件被删除之前开始读取。
我正在使用 Java 5,目前无法升级到 6。
【问题讨论】:
-
您描述的问题只发生在Windows上。是那个平台吗?
-
我也能在 Mac OS X 上重现这个问题。
-
@EJP - 你可能读得太字面意思了。问题不在于您“必须在调用 File.delete() 之前释放锁”。您可以在释放锁之前调用 File.delete(),但是,删除将不起作用。代码将执行,但方法将返回 false 并静默失败。
-
如果它不起作用,它就不起作用。我不知道你想在这里澄清什么。