Spec-Zone .ru
спецификации, руководства, описания, API
|
Как упомянуто ранее, 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
.