3
我的问题是这样的:我使用WatchService
来获得关于特定文件夹中的新文件的通知,现在如果文件在所述文件夹中被移动/复制或创建,则触发事件并返回新文件的名称。现在的问题是,如果我尝试访问该文件并且尚未完全访问(例如复制仍在进行中),则会引发异常。我试过是做这样的事情:Java - 锁定独占访问的文件
RandomAccessFile raf = new RandomAccessFile(fileName, "rw");
FileChannel fc = raf.getChannel();
FileLock lck = fc.lock();
但即使锁被收购,有时仍然是一个异常被,如果我尝试写入文件,因为另一个进程仍具有打开的句柄给它提出的。
现在,Java中的文件如何被锁定以实现真正的独占访问?