Может ли файл, открытый в java, быть заблокирован через afp mount? - PullRequest
1 голос
/ 02 июня 2010

Я пытаюсь получить блокировку файла через точку монтирования через Java 6 на OSX:

    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 Ответ

1 голос
/ 02 июня 2010

Исключение, которое вы получаете, говорит обо всем IOException (Operation not supported). Различные файловые системы имеют разные возможности, и блокировка является одной из них . Википедия Сравнение файловых систем , хотя в ней не упоминается блокировка, действительно проясняет этот момент.

Когда вы обращаетесь к файлам через SMB или AFP, вы эффективно используете их в качестве файловой системы, и они представляют собой файловые системы, которые не очень богаты возможностями. К сожалению, вы не можете предполагать, что все возможности реальной файловой системы, в которой хранятся файлы, будут доступны через SMB или AFP.

Цель протокола SMB - предоставить общий доступ к файлам, принтерам и т. П. В сети, поскольку устройства в сети разнородны, протокол ограничивает его функциональные возможности наиболее универсально поддерживаемыми функциями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...