2010-06-02 3 views
1

나는 OSX에서 Java 6를 통해 마운트 지점에서 파일 잠금을 얻으려고 :Java에서 연 파일을 afp 마운트를 통해 잠글 수 있습니까?

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 마운트를 통해 파일을 잠그는 방법을 찾았습니까?

답변

1

예외가 있다면 모두 IOException (Operation not supported)입니다. 다른 파일 시스템은 기능이 다르며 잠금은 중 하나입니다. 위키 피 디아 Comparison of file systems은 잠금을 언급하지는 않았지만이 점을 분명히합니다.

SMB 또는 AFP를 통해 파일에 액세스 할 때 효과적으로 파일 시스템으로 사용하고 있으며 기능이 풍부하지 않은 파일 시스템입니다. 불행히도 파일이 저장된 실제 파일 시스템의 모든 기능을 SMB 또는 AFP를 통해 사용할 수 있다고 가정 할 수는 없습니다.

SMB 프로토콜의 목표는 네트워크의 장치가 이기종이기 때문에 프로토콜이 기능을 가장 보편적으로 지원되는 기능으로 제한하기 때문에 네트워크에서 파일, 프린터 등에 대한 공유 액세스를 제공하는 것입니다.