我正在尝试通过 OSX 上的 Java 6 跨挂载点获取文件锁定:
private void tryLockThroughShare() {
String path = "/Volumes/Groups/mcm/javaTestInShare.txt";
try {
RandomAccessFile raf = new RandomAccessFile(path, "rw");
FileLock flock = raf.getChannel().tryLock();
System.out.printf("File %s is %s\n", path, (flock != null) ?
("locked") : ("not locked"));
raf.write("yoo hoo!".getBytes());
raf.close();
} catch (IOException e) {
e.printStackTrace();
}
}
当我使用 AFP 或 SMB 安装卷时,即使我可以在安装的目标中写入文件,我也无法锁定它们,而是收到:IOException(不支持操作)。
经过一些实验,我发现我可以在使用 NFS 设置卷时锁定。
有没有人找到在 SMB 或 AFP 挂载上锁定文件的方法?