Spec-Zone .ru
спецификации, руководства, описания, API
След: Существенные Классы
Урок: Основной ввод-вывод
Раздел: Файловый ввод-вывод (Обладающий NIO.2)
Ссылки, Символьные или Иначе
Домашняя страница > Существенные Классы > Основной ввод-вывод

Ссылки, Символьные или Иначе

Как упомянуто ранее, java.nio.file пакет, и Path class в частности "знающая ссылка." Каждый Path метод или обнаруживает, что сделать, когда с символьной ссылкой встречаются, или это предоставляет возможность, позволяющую Вам сконфигурировать поведение, когда с символьной ссылкой встречаются.

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

Из-за этих ограничений жесткие ссылки не используются так часто в качестве символьных ссылок, но Path методы работают легко с жесткими ссылками.

Несколько методов имеют дело определенно со ссылками и покрываются следующими разделами:

Создание Символьной ссылки

Если Ваша файловая система поддерживает это, можно создать символьную ссылку при использовании createSymbolicLink(Path, Path, FileAttribute<?>) метод. Второе Path параметр представляет конечный файл или каталог, и могли бы, или не мог бы существовать. Следующий фрагмент кода создает символьную ссылку с полномочиями значения по умолчанию:

Path newLink = ...;
Path target = ...;
try {
    Files.createSymbolicLink(newLink, target);
} catch (IOException x) {
    System.err.println(x);
} catch (UnsupportedOperationException x) {
    // Some file systems do not support symbolic links.
    System.err.println(x);
}

FileAttributes vararg позволяет Вам определить начальные атрибуты файла, которые устанавливаются атомарно, когда ссылка создается. Однако, этот параметр предназначается для будущего использования и в настоящий момент не реализуется.

Создание Жесткой ссылки

Можно создать твердое (или регулярный) соединяются с существующим файлом при использовании createLink(Path, Path) метод. Второе Path параметр определяет местоположение существующего файла, и это должно существовать или a NoSuchFileException бросается. Следующий фрагмент кода показывает, как создать ссылку:

Path newLink = ...;
Path existingFile = ...;
try {
    Files.createLink(newLink, existingFile);
} catch (IOException x) {
    System.err.println(x);
} catch (UnsupportedOperationException x) {
    // Some file systems do not
    // support adding an existing
    // file to a directory.
    System.err.println(x);
}

Обнаружение Символьной ссылки

Определить ли a Path экземпляр является символьной ссылкой, можно использовать isSymbolicLink(Path) метод. Следующий фрагмент кода показывает как:

Path file = ...;
boolean isSymbolicLink =
    Files.isSymbolicLink(file);

Для получения дополнительной информации см. Управляющие Метаданные.

Обнаружение Цели Ссылки

Можно получить цель символьной ссылки при использовании readSymbolicLink(Path) метод, следующим образом:

Path link = ...;
try {
    System.out.format("Target of link" +
        " '%s' is '%s'%n", link,
        Files.readSymbolicLink(link));
} catch (IOException x) {
    System.err.println(x);
}

Если Path не символьная ссылка, этот метод бросает a NotLinkException.


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Создание и Чтение Каталогов
Следующая страница: Обход Дерева Файла