|
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 позволяет Вам определить начальные атрибуты файла, которые устанавливаются атомарно, когда ссылка создается. Однако, этот параметр предназначается для будущего использования и в настоящий момент не реализуется.
Можно создать твердое (или регулярный) соединяются с существующим файлом при использовании метод. Второе 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 экземпляр является символьной ссылкой, можно использовать метод. Следующий фрагмент кода показывает как:
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.