Spec-Zone.ru › OpenJDK 24

Путь к файлу

Все суперинтерфейсы:
Comparable<Path>, Iterable<Path>, Watchable
public interface Path extends Comparable<Path>, Iterable<Path>, Watchable
Объект, который может быть использован для поиска файла в файловой системе. Обычно он представляет собой путь к файлу, зависящий от системы.

Path представляет собой путь, который является иерархическим и составлен из последовательности элементов имени каталога и имени файла, разделенных специальным разделителем или символом. Также может присутствовать корневой компонент, определяющий иерархию файловой системы. Элемент имени, который находится дальше всего от корня иерархии каталогов, является именем файла или каталога. Другие элементы имени — это имена каталогов. Path может представлять корень, корень и последовательность имен или просто один или несколько элементов имени. Path считается пустым путем, если он состоит только из одного пустого элемента имени. Доступ к файлу с использованием пустого пути эквивалентен доступу к каталогу по умолчанию файловой системы. Path определяет методы getFileName, getParent, getRoot и subpath для доступа к компонентам пути или подпоследовательности элементов его имени.

Помимо доступа к компонентам пути, Path также определяет методы resolve и resolveSibling для объединения путей. Метод relativize может использоваться для построения относительного пути между двумя путями. Пути могут быть compared, а проверка на совпадение может производиться с использованием методов startsWith и endsWith.

Этот интерфейс расширяет интерфейс Watchable, чтобы каталог, расположенный по пути, мог быть registered с помощью WatchService и записи в каталоге отслеживались.

ПРЕДУПРЕЖДЕНИЕ: Этот интерфейс предназначен только для реализации при разработке пользовательских реализаций файловых систем. В будущих версиях в этот интерфейс могут быть добавлены методы.

Доступ к файлам

Пути могут использоваться с классом Files для работы с файлами, каталогами и другими типами файлов. Например, предположим, что нам нужен BufferedReader для чтения текста из файла "access.log". Файл расположен в каталоге "logs" относительно текущего каталога и закодирован в UTF-8.

    Path path = FileSystems.getDefault().getPath("logs", "access.log");
    BufferedReader reader = Files.newBufferedReader(path, StandardCharsets.UTF_8);

Взаимодействие

Пути, связанные с по умолчанию provider, как правило, совместимы с классом java.io.File. Пути, созданные другими поставщиками, вряд ли будут совместимы с абстрактными именами путей, представленными java.io.File. Метод toPath может использоваться для получения Path из абстрактного имени пути, представленного объектом java.io.File. Полученный Path может использоваться для работы с тем же файлом, что и объект java.io.File. Кроме того, метод toFile полезен для построения File из представления String Path.

Конкурентность

Реализации этого интерфейса неизменяемы и безопасны для использования в нескольких потоках.

С:
1.7

Краткое описание методов

Модификатор и тип Метод Описание
int compareTo(Path other)
Сравнивает два абстрактных пути лексикографически.
default boolean endsWith(String other)
Проверяет, заканчивается ли этот путь на Path, построенный путём преобразования заданной строки пути, точно так же, как указано в методе endsWith(Path).
boolean endsWith(Path other)
Проверяет, заканчивается ли этот путь заданным путём.
boolean equals(Object other)
Проверяет этот путь на равенство с заданным объектом.
Path getFileName()
Возвращает имя файла или каталога, обозначаемого этим путём, как объект Path.
FileSystem getFileSystem()
Возвращает файловую систему, которая создала этот объект.
Path getName(int index)
Возвращает элемент имени этого пути как объект Path.
int getNameCount()
Возвращает количество элементов имени в пути.
Path getParent()
Возвращает родительский путь, или null, если у этого пути нет родителя.
Path getRoot()
Возвращает корневой компонент этого пути как объект Path, или null, если у этого пути нет корневого компонента.
int hashCode()
Вычисляет код хэша для этого пути.
boolean isAbsolute()
Указывает, является ли этот путь абсолютным.
default Iterator<Path> iterator()
Возвращает итератор по элементам имени этого пути.
Path normalize()
Возвращает путь, который является этим путём с удалёнными избыточными элементами имени.
static Path of(String first, String... more)
Возвращает Path, преобразуя строку пути или последовательность строк, которые при объединении образуют строку пути.
static Path of(URI uri)
Возвращает Path, преобразуя URI.
default WatchKey register(WatchService watcher, WatchEvent.Kind<?>... events)
Регистрирует файл, расположенный по этому пути, в службе отслеживания.
WatchKey register(WatchService watcher, WatchEvent.Kind<?>[] events, WatchEvent.Modifier... modifiers)
Регистрирует файл, расположенный по этому пути, в службе отслеживания.
Path relativize(Path other)
Строит относительный путь между этим путём и заданным путём.
default Path resolve(String other)
Преобразует заданную строку пути в Path и разрешает её относительно этого Path точно так же, как указано в методе resolve.
default Path resolve(String first, String... more)
Преобразует строку пути в путь, разрешает этот путь относительно этого пути, а затем итеративно выполняет ту же процедуру для любых дополнительных строк пути.
Path resolve(Path other)
Разрешает заданный путь относительно этого пути.
default Path resolve(Path first, Path... more)
Разрешает путь относительно этого пути, а затем итеративно разрешает любые дополнительные пути.
default Path resolveSibling(String other)
Преобразует заданную строку пути в Path и разрешает её относительно пути родителя этого пути parent точно так же, как указано в методе resolveSibling.
default Path resolveSibling(Path other)
Разрешает заданный путь относительно пути родителя этого пути parent.
default boolean startsWith(String other)
Проверяет, начинается ли этот путь с Path, построенного путём преобразования заданной строки пути, точно так же, как указано в методе startsWith(Path).
boolean startsWith(Path other)
Проверяет, начинается ли этот путь с заданного пути.
Path subpath(int beginIndex, int endIndex)
Возвращает относительный Path, который является подпоследовательностью элементов имени этого пути.
Path toAbsolutePath()
Возвращает объект Path, представляющий абсолютный путь этого пути.
default File toFile()
Возвращает объект File, представляющий этот путь.
Path toRealPath(LinkOption... options)
Возвращает действительный путь существующего файла.
String toString()
Возвращает строковое представление этого пути.
URI toUri()
Возвращает URI для представления этого пути.

Методы, объявленные в интерфейсе java.lang.Iterable

forEach, spliterator

Подробное описание методов

of

static Path of(String first, String... more)
Возвращает Path, преобразуя строку пути или последовательность строк, которые при объединении образуют строку пути. Если more не определяет какие-либо элементы, то значение параметра first — это строка пути для преобразования. Если more определяет один или несколько элементов, каждая непустая строка, включая first, рассматривается как последовательность элементов имени и объединяется для формирования строки пути. Подробности о том, как строки объединяются, зависят от конкретной реализации, но обычно они объединяются с использованием name-separator в качестве разделителя. Например, если разделитель имен — "/", а вызывается getPath("/foo","bar","gus"), то строка пути "/foo/bar/gus" преобразуется в Path. Path, представляющий пустой путь, возвращается, если first — это пустая строка, а more не содержит непустых строк.

Path получается, вызывая метод getPath объекта default FileSystem.

Обратите внимание, что, хотя этот метод очень удобен, его использование подразумевает предполагаемую ссылку на системный компонент по умолчанию, ограничивая полезность вызывающего кода. Поэтому его не следует использовать в библиотечном коде, предназначенном для гибкого повторного использования. Более гибкий вариант — использование существующего экземпляра Path в качестве якоря, например:

    Path dir = ...
    Path path = dir.resolve("file");
Параметры:
first — строка пути или начальная часть строки пути
more — дополнительные строки, которые должны быть объединены для формирования строки пути
Возвращает:
результирующий Path
Исключения:
InvalidPathException — если строка пути не может быть преобразована в Path
С тех пор:
11
См. также:
  • FileSystem.getPath(java.lang.String, java.lang.String...)

of

static Path of(URI uri)
Возвращает Path, преобразуя URI.

Этот метод итерирует по поставщикам installed, чтобы найти поставщика, который идентифицируется схемой URI scheme данного URI. Схемы URI сравниваются без учета регистра. Если поставщик найден, вызывается его метод getPath для преобразования URI.

В случае поставщика по умолчанию, идентифицируемого схемой URI "file", у данного URI есть непустой компонент пути, и неопределенные компоненты запроса и фрагмента. Наличие компонента авторизации зависит от платформы. Возвращаемый Path связан с файловой системой default.

Поставщик по умолчанию обеспечивает гарантию повторного прохождения, аналогичную классу File. Для данного Path p гарантируется, что

Path.of(p.toUri()).equals( p.toAbsolutePath())
, при условии, что исходный Path, URI и новый Path были созданы в (возможно, разных вызовах) одной и той же виртуальной машине Java. Гарантии других поставщиков зависят от поставщика и поэтому не определены.
Параметры:
uri — URI для преобразования
Возвращает:
результирующий Path
Исключения:
IllegalArgumentException — если условия предварительной обработки для параметра uri не соблюдаются. Формат URI зависит от поставщика.
FileSystemNotFoundException — файловая система, идентифицированная URI, не существует и не может быть автоматически создана, или поставщик, идентифицированный компонентом схемы URI, не установлен
С тех пор:
11

getFileSystem

FileSystem getFileSystem()
Возвращает файловую систему, которая создала этот объект.
Возвращает:
файловую систему, которая создала этот объект

isAbsolute

boolean isAbsolute()
Определяет, является ли данный путь абсолютным.

Абсолютный путь является полным, так как для его использования не требуется комбинирование с дополнительными данными о пути для поиска файла.

Возвращает:
true, если и только если данный путь является абсолютным

getRoot

Path getRoot()
Возвращает корневую часть этого пути в виде объекта Path, или null, если этот путь не имеет корневой части.
Возвращает:
путь, представляющий корневую часть этого пути, или null

getFileName

Path getFileName()
Возвращает имя файла или каталога, обозначаемого этим путем, в виде объекта Path. Имя файла является самым удалённым элементом от корня в иерархии каталогов.
Возвращает:
путь, представляющий имя файла или каталога, или null, если у этого пути нет элементов

getParent

Path getParent()
Возвращает родительский путь или null, если у этого пути нет родителя.

Родитель этого пути состоит из корневой части этого пути, если она есть, и каждого элемента в пути, кроме самого удалённого от корня в иерархии каталогов. Этот метод не обращается к файловой системе; путь или его родитель могут не существовать. Кроме того, этот метод не удаляет специальные имена, такие как "." и "..", которые могут использоваться в некоторых реализациях. Например, на UNIX родитель "/a/b/c" — "/a/b", а родитель ""x/y/." — "x/y". Этот метод можно использовать с методом normalize для удаления избыточных имён в случаях, когда требуется подобная оболочке навигация.

Если у этого пути более одного элемента и нет корневой части, то этот метод эквивалентен оценке выражения:

    subpath(0, getNameCount()-1);
Возвращает:
путь, представляющий родительский путь

getNameCount

int getNameCount()
Возвращает количество элементов имени в пути.
Возвращает:
количество элементов в пути или 0, если этот путь представляет только корневую часть

getName

Path getName(int index)
Возвращает элемент имени этого пути в виде объекта Path.

Параметр index — индекс возвращаемого элемента имени. Элемент, находящийся ближе к корню в иерархии каталогов, имеет индекс 0. Элемент, находящийся дальше от корня, имеет индекс count-1.

Параметры:
index — индекс элемента
Возвращает:
элемент имени
Исключения:
IllegalArgumentException — если index отрицательно, index больше или равно количеству элементов, или у этого пути нет элементов

subpath

Path subpath(int beginIndex, int endIndex)
Возвращает относительный Path, который является подпоследовательностью элементов имени этого пути.

Параметры beginIndex и endIndex определяют подпоследовательность элементов имени. Элемент, находящийся ближе к корню в иерархии каталогов, имеет индекс 0. Элемент, находящийся дальше от корня, имеет индекс count-1. Возвращаемый объект Path содержит элементы имени, начиная с beginIndex и заканчивая элементом с индексом endIndex-1.

Параметры:
beginIndex — индекс первого элемента, включительно
endIndex — индекс последнего элемента, исключая его
Возвращает:
новый объект Path, являющийся подпоследовательностью элементов имени в этом Path
Исключения:
IllegalArgumentException — если beginIndex отрицательный или больше или равен количеству элементов. Если endIndex меньше или равен beginIndex или больше количества элементов.

startsWith

boolean startsWith(Path other)
Проверяет, начинается ли этот путь с указанного пути.

Этот путь начинается с заданного пути, если корневой компонент этого пути начинается с корневого компонента заданного пути, и этот путь начинается с тех же именных элементов, что и заданный путь. Если заданный путь имеет больше именных элементов, чем этот путь, то false возвращается.

То, начинается ли корневой компонент этого пути с корневого компонента заданного пути, зависит от файловой системы. Если у этого пути нет корневого компонента, а у заданного пути есть корневой компонент, то этот путь не начинается с заданного пути.

Если заданный путь связан с другой FileSystem, чем этот путь, то false возвращается.

Параметры:
other - заданный путь
Возвращает:
true, если этот путь начинается с заданного пути; в противном случае false

startsWith

default boolean startsWith(String other)
Проверяет, начинается ли этот путь с Path, созданного путём преобразования заданной строки пути, точно так же, как указано в методе startsWith(Path). Например, в UNIX путь "foo/bar" начинается с "foo" и "foo/bar". Он не начинается с "f" или "fo".
Требования к реализации:
Стандартная реализация эквивалентна для этого пути:
    startsWith(getFileSystem().getPath(other));
Параметры:
other - заданная строка пути
Возвращает:
true, если этот путь начинается с заданного пути; в противном случае false
Исключения:
InvalidPathException - Если строка пути не может быть преобразована в Path.

endsWith

boolean endsWith(Path other)
Проверяет, заканчивается ли этот путь заданным путём.

Если заданный путь имеет N элементов и не имеет корневого компонента, а этот путь имеет N или больше элементов, то этот путь заканчивается заданным путём, если последние N элементов каждого пути, начиная с элемента, наиболее удалённого от корня, равны.

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

Если заданный путь связан с другой FileSystem, чем этот путь, то false возвращается.

Параметры:
other - заданный путь
Возвращает:
true, если этот путь заканчивается заданным путём; в противном случае false

endsWith

default boolean endsWith(String other)
Проверяет, заканчивается ли этот путь Path, созданным путём преобразования заданной строки пути, точно так же, как указано в методе endsWith(Path). Например, в UNIX путь "foo/bar" заканчивается "foo/bar" и "bar". Он не заканчивается "r" или "/bar". Обратите внимание, что заключительные разделители не учитываются, поэтому вызов этого метода для Path "foo/bar" со строкой пути "bar/" возвращает true.
Требования к реализации:
Стандартная реализация эквивалентна для этого пути:
    endsWith(getFileSystem().getPath(other));
Параметры:
other - заданная строка пути
Возвращает:
true, если этот путь заканчивается заданным путём; в противном случае false
Исключения:
InvalidPathException - Если строка пути не может быть преобразована в Path.

normalize

Path normalize()
Возвращает путь, являющийся этим путём с устранёнными избыточными элементами имени.

Точное определение этого метода зависит от реализации, но в целом он выводится из этого пути, пути, не содержащего избыточных элементов имени. Во многих файловых системах "." и ".." являются специальными именами, используемыми для указания текущей директории и родительской директории. В таких файловых системах все вхождения "." считаются избыточными. Если ".." предшествует не-".." имени, то оба имени считаются избыточными (процесс идентификации таких имён повторяется до тех пор, пока он больше не применим).

Этот метод не обращается к файловой системе; путь может не указывать на существующий файл. Удаление ".." и предшествующего имени из пути может привести к пути, указывающему на другой файл, чем исходный путь. Это может произойти, когда предшествующее имя является символической ссылкой.

Возвращает:
результирующий путь или этот путь, если он не содержит избыточных элементов имени; возвращается пустой путь, если у этого пути нет корневого компонента и все элементы имени являются избыточными
См. также:
  • getParent()
  • toRealPath(java.nio.file.LinkOption...)

resolve

Path resolve(Path other)
Разрешает заданный путь относительно этого пути.

Если путь other является absolute путём, то этот метод тривиально возвращает other. Если other является пустым путём, то этот метод тривиально возвращает этот путь. В противном случае этот метод рассматривает этот путь как директорию и разрешает заданный путь относительно этого пути. В самом простом случае, заданный путь не имеет компонента root, в этом случае этот метод объединяет заданный путь с этим путём и возвращает результирующий путь, который ends с заданным путём. В случае, когда заданный путь имеет корневой компонент, разрешение сильно зависит от реализации и поэтому не определено.

Параметры:
other - путь для разрешения относительно этого пути
Возвращает:
результирующий путь
См. также:
  • relativize(java.nio.file.Path)

resolve

default Path resolve(String other)
Преобразует заданную строку пути в Path и разрешает её относительно этого Path точно так же, как указано в методе resolve. Например, предположим, что разделитель имени - "/", и путь представляет "foo/bar", тогда вызов этого метода со строкой пути "gus" приведёт к пути Path "foo/bar/gus".
Требования к реализации:
Стандартная реализация эквивалентна для этого пути:
    resolve(getFileSystem().getPath(other));
Параметры:
other - строка пути для разрешения относительно этого пути
Возвращает:
результирующий путь
Исключения:
InvalidPathException - если строка пути не может быть преобразована в Path.
См. также:
  • FileSystem.getPath(java.lang.String, java.lang.String...)

resolve

default Path resolve(Path first, Path... more)
Разрешает путь относительно этого пути, а затем итеративно разрешает любые дополнительные пути.

Этот метод разрешает first относительно этого Path как если бы вызывался resolve(Path). Если more имеет один или несколько элементов, он разрешает первый элемент относительно результата, а затем итеративно разрешает все последующие элементы. Этот метод возвращает результат последнего разрешения.

Требования к реализации:
Стандартная реализация эквивалентна результату, полученному с помощью:
    Path result = resolve(first);
    for (Path p : more) {
        result = result.resolve(p);
    }
Параметры:
first - первый путь для разрешения относительно этого пути
more - дополнительные пути для итеративного разрешения
Возвращает:
результирующий путь
С:
22
См. также:
  • resolve(Path)

resolve

default Path resolve(String first, String... more)
Преобразует строку пути в путь, разрешает этот путь относительно текущего пути, а затем итеративно выполняет ту же процедуру для любых дополнительных строк пути.

Этот метод преобразует first в Path и разрешает этот Path относительно текущего Path, как если бы вызывался resolve(String). Если more имеет один или несколько элементов, то он преобразует первый элемент в путь, разрешает этот путь относительно результата, а затем итеративно преобразует и разрешает все последующие элементы. Этот метод возвращает результат окончательного разрешения.

Требования к реализации:
Стандартная реализация эквивалентна результату, полученному с помощью:
Path result = resolve(first);
for (String s : more) {
    result = result.resolve(s);
}
Параметры:
first - первая строка пути, которая должна быть преобразована в путь и разрешена относительно текущего пути
more - дополнительные строки пути, которые должны быть итеративно преобразованы в пути и разрешены
Возвращает:
результирующий путь
Исключения:
InvalidPathException - если строку пути нельзя преобразовать в Path.
С:
22
См. также:
  • resolve(Path,Path...)
  • resolve(String)

resolveSibling

default Path resolveSibling(Path other)
Разрешает заданный путь относительно пути родительского каталога текущего пути. Это полезно в случаях, когда имя файла нужно заменить другим именем файла. Например, предположим, что разделитель имен - "/", а путь представляет "dir1/dir2/foo", тогда вызов этого метода с путем Path "bar" приведет к пути Path "dir1/dir2/bar". Если у текущего пути нет родительского пути, или other является absolute, то этот метод возвращает other. Если other является пустым путем, то этот метод возвращает родительский путь текущего пути, или, если родительский путь отсутствует, пустой путь.
Требования к реализации:
Стандартная реализация эквивалентна для этого пути:
    (getParent() == null) ? other : getParent().resolve(other);
за исключением случая other == null, в котором выбрасывается NullPointerException.
Параметры:
other - путь для разрешения относительно родительского пути текущего пути
Возвращает:
результирующий путь
См. также:
  • resolve(Path)

resolveSibling

default Path resolveSibling(String other)
Преобразует заданную строку пути в Path и разрешает ее относительно родительского пути текущего пути (parent) точно так же, как указано в методе resolveSibling.
Требования к реализации:
Стандартная реализация эквивалентна для этого пути:
    resolveSibling(getFileSystem().getPath(other));
Параметры:
other - строка пути для разрешения относительно родительского пути текущего пути
Возвращает:
результирующий путь
Исключения:
InvalidPathException - если строку пути нельзя преобразовать в Path.
См. также:
  • FileSystem.getPath(java.lang.String, java.lang.String...)

relativize

Path relativize(Path other)
Строит относительный путь между текущим путем и заданным путем.

Относительный путь является обратным resolution. Этот метод пытается построить relative путь, который, когда resolved относительно текущего пути, дает путь, указывающий на тот же файл, что и заданный путь. Например, в UNIX, если текущий путь "/a/b", а заданный путь "/a/b/c/d", то результирующий относительный путь будет "c/d". Если у текущего пути и заданного пути нет компонента корня, то можно построить относительный путь. Относительный путь нельзя построить, если только у одного из путей есть компонент корня. Если у обоих путей есть компонент корня, то построение относительного пути зависит от реализации.

Для любых двух normalized путей p и q, где q не имеет компонента корня,

p.relativize(p .resolve(q)).equals(q)

При поддержке символических ссылок, то, будет ли результирующий путь, при разрешении относительно текущего пути, указывать на тот же файл, что и other, зависит от реализации. Например, если текущий путь "/a/b", а заданный путь "/a/x", то результирующий относительный путь может быть "../x". Если "b" является символической ссылкой, то то, будет ли "a/b/../x" указывать на тот же файл, что и "/a/x", зависит от реализации.

Параметры:
other - путь для построения относительного пути относительно текущего пути
Возвращает:
результирующий относительный путь, или пустой путь, если оба пути равны
Исключения:
IllegalArgumentException - если other не является Path, который можно преобразовать в относительный путь относительно текущего пути

toUri

URI toUri()
Возвращает URI для представления этого пути.

Этот метод создает абсолютный URI с scheme, равным схеме URI, идентифицирующей провайдера. Точный формат специфической части схемы сильно зависит от провайдера.

В случае стандартного провайдера URI иерархический с path компонентом, который абсолютный. Компоненты запроса и фрагмента не определены. Определение компонента авторизации зависит от реализации. Нет гарантии, что URI может быть использован для построения java.io.File. В частности, если этот путь представляет собой UNC-путь, то имя UNC-сервера может быть закодировано в компоненте авторизации результирующего URI. В случае стандартного провайдера, и файл существует, и можно определить, что это директория, то результирующий URI будет заканчиваться слешем.

Стандартный провайдер предоставляет аналогичную гарантию обратного преобразования классу File. Для заданного Path p гарантируется, что

Path.of(p.toUri()).equals(p .toAbsolutePath())
до тех пор, пока исходный Path, URI и новый Path созданы в (возможно, разных вызовах) одной и той же виртуальной машине Java. Гарантии других провайдеров зависят от провайдера и поэтому не определены.

При построении файловой системы для доступа к содержимому файла как к файловой системе, то, представляет ли возвращаемый URI данный путь в файловой системе или это составной URI, кодирующий URI окружающей файловой системы, зависит от конкретной реализации. Формат составных URI не определен в этом релизе; такая схема может быть добавлена в будущей версии.

Возвращает:
URI, представляющий этот путь
Исключения:
IOError - если произошла ошибка ввода-вывода при получении абсолютного пути, или когда файловая система построена для доступа к содержимому файла как к файловой системе, и URI окружающей файловой системы получить не удается

toAbsolutePath

Path toAbsolutePath()
Возвращает объект Path, представляющий абсолютный путь этого пути.

Если этот путь уже absolute, то этот метод просто возвращает этот путь. В противном случае этот метод разрешает путь в зависимости от реализации, обычно разрешая путь относительно системного каталога по умолчанию. В зависимости от реализации, этот метод может вызвать ошибку ввода-вывода, если файловая система недоступна.

Возвращает:
объект Path, представляющий абсолютный путь
Исключения:
IOError - если произошла ошибка ввода-вывода

toRealPath

Path toRealPath(LinkOption... options) throws IOException
Возвращает фактический путь к существующему файлу.

Точное определение этого метода зависит от реализации, но в общем случае он выводится из этого пути, абсолютный путь, который определяет absolute путь, указывающий на same файл, как этот путь, но с элементами имени, которые представляют фактические имена каталогов и файла. Например, где сравнения имён файлов в файловой системе не учитывают регистр, элементы имени представляют имена в их фактическом регистре. Кроме того, лишние элементы имени в результирующем пути удаляются.

Если этот путь является относительным, то сначала вычисляется его абсолютный путь, как если бы вызывался метод toAbsolutePath.

Массив options может быть использован для указания, как обрабатывать символические ссылки. По умолчанию символические ссылки разрешаются до их конечного целевого объекта. Если присутствует параметр NOFOLLOW_LINKS, то этот метод не разрешает символические ссылки. Некоторые реализации допускают специальные имена, такие как "..", для ссылки на родительский каталог. При вычислении фактического пути, если за именем ".." (или эквивалентом) следует имя, которое не является "..", то реализация обычно удаляет оба имени. Если символические ссылки не разрешаются, и предшествующее имя является символической ссылкой, то имена удаляются только в том случае, если гарантируется, что результирующий путь указывает на тот же файл, что и этот путь.

Параметры:
options - параметры, указывающие, как обрабатывать символические ссылки
Возвращает:
абсолютный путь, представляющий фактический путь к файлу, указанному этим объектом
Исключения:
IOException - если файл не существует или произошла ошибка ввода-вывода

toFile

default File toFile()
Возвращает объект File, представляющий этот путь. Если этот Path ассоциирован с поставщиком по умолчанию, то этот метод эквивалентен возвращению объекта File, построенного с представлением String этого пути.

Если этот путь был создан путем вызова метода File toPath, то нет гарантии, что объект File, возвращаемый этим методом, equal исходному объекту File.

Требования к реализации:
Реализация по умолчанию эквивалентна для этого пути:
    new File(toString());
если FileSystem, который создал этот Path, является файловой системой по умолчанию; в противном случае выбрасывается исключение UnsupportedOperationException.
Возвращает:
объект File, представляющий этот путь
Исключения:
UnsupportedOperationException - если этот Path не связан с поставщиком по умолчанию

register

WatchKey register(WatchService watcher, WatchEvent.Kind<?>[] events, WatchEvent.Modifier... modifiers) throws IOException
Регистрирует файл, указанный этим путем, в службе наблюдения.

В этой версии этот путь указывает на существующий каталог. Каталог регистрируется в службе наблюдения, чтобы можно было наблюдать за записями в каталоге. Параметр events указывает события для регистрации и может содержать следующие события:

  • ENTRY_CREATE - запись создана или перемещена в каталог
  • ENTRY_DELETE - запись удалена или перемещена из каталога
  • ENTRY_MODIFY - запись в каталоге была изменена

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

Набор событий может включать дополнительные события, специфичные для реализации, которые не определены перечислением StandardWatchEventKinds

Параметр modifiers указывает модификаторы, которые квалифицируют, как регистрируется каталог. В этой версии не определено никаких стандартных модификаторов. Он может содержать специфичные для реализации модификаторы.

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

Указано в:
register в интерфейсе Watchable
Параметры:
watcher - служба наблюдения, к которой должен быть зарегистрирован этот объект
events - события, для которых этот объект должен быть зарегистрирован
modifiers - модификаторы, если таковые имеются, которые изменяют способ регистрации объекта
Возвращает:
ключ, представляющий регистрацию этого объекта в данной службе наблюдения
Исключения:
UnsupportedOperationException - если указаны неподдерживаемые события или модификаторы
IllegalArgumentException - если указана некорректная комбинация событий или модификаторов
ClosedWatchServiceException - если служба наблюдения закрыта
NotDirectoryException - если файл зарегистрирован для наблюдения за записями в каталоге, и файл не является каталогом (дополнительное специфичное исключение)
IOException - если произошла ошибка ввода-вывода

register

default WatchKey register(WatchService watcher, WatchEvent.Kind<?>... events) throws IOException
Регистрирует файл, указанный этим путем, в службе наблюдения.

Вызов этого метода ведет себя точно так же, как вызов

    register(watcher, events, new WatchEvent.Modifier[0]);

Пример использования: Предположим, что мы хотим зарегистрировать каталог для событий создания, удаления и изменения записей:

    Path dir = ...
    WatchService watcher = ...

    WatchKey key = dir.register(watcher, ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY);
Указано в:
register в интерфейсе Watchable
Требования к реализации:
Реализация по умолчанию эквивалентна для этого пути:
    register(watcher, events, new WatchEvent.Modifier[0]);
Параметры:
watcher - служба наблюдения, к которой должен быть зарегистрирован этот объект
events - события, для которых этот объект должен быть зарегистрирован
Возвращает:
Ключ, представляющий регистрацию этого объекта в данной службе наблюдения
Исключения:
UnsupportedOperationException - если указаны неподдерживаемые события
IllegalArgumentException - если указана некорректная комбинация событий
ClosedWatchServiceException - если служба наблюдения закрыта
NotDirectoryException - если файл зарегистрирован для наблюдения за записями в каталоге, и файл не является каталогом (дополнительное специфичное исключение)
IOException - если произошла ошибка ввода-вывода

iterator

default Iterator<Path> iterator()
Возвращает итератор по элементам имени этого пути.

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

Указано в:
iterator в интерфейсе Iterable<Path>
Требования к реализации:
Реализация по умолчанию возвращает итератор, который для этого пути перебирает элементы Path, возвращаемые getName(index), где index изменяется от нуля до getNameCount() - 1 включительно.
Возвращает:
итератор по элементам имени этого пути

compareTo

int compareTo(Path other)
Сравнивает два абстрактных пути лексикографически. Порядок, определенный этим методом, зависит от поставщика, а в случае поставщика по умолчанию — от платформы. Этот метод не обращается к файловой системе, и ни один из файлов не должен существовать.

Этот метод не может использоваться для сравнения путей, связанных с разными поставщиками файловой системы.

Указано в:
compareTo в интерфейсе Comparable<Path>
Параметры:
other - путь, сравниваемый с этим путем.
Возвращает:
ноль, если аргумент equal этому пути, значение меньше нуля, если этот путь лексикографически меньше аргумента, или значение больше нуля, если этот путь лексикографически больше аргумента
Исключения:
ClassCastException - если пути связаны с разными поставщиками

equals

boolean equals(Object other)
Проверяет это путь на равенство с заданным объектом.

Если заданный объект не является путём или является путём, связанным с другим FileSystem, то этот метод возвращает false.

Равенство двух путей зависит от реализации файловой системы. В некоторых случаях пути сравниваются без учёта регистра, а в других — с учётом регистра. Этот метод не обращается к файловой системе, и файл не требуется для существования. В случае необходимости, можно использовать метод isSameFile для проверки, указывают ли два пути на один и тот же файл.

Этот метод удовлетворяет общему соглашению метода Object.equals.

Overrides:
equals в классе Object
Параметры:
other - объект, с которым должен быть сравнен данный объект
Возвращает:
true, если и только если заданный объект является Path, идентичным этому Path
См. также:
  • Object.hashCode()
  • HashMap

hashCode

int hashCode()
Вычисляет код хеширования для этого пути.

Код хеширования основан на компонентах пути и удовлетворяет общему соглашению метода Object.hashCode.

Overrides:
hashCode в классе Object
Возвращает:
значение кода хеширования для этого пути
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

toString

String toString()
Возвращает строковое представление этого пути.

Если этот путь был создан путём преобразования строкового пути, используя метод getPath, то строковый путь, возвращаемый этим методом, может отличаться от исходной строки, используемой для создания пути.

Возвращаемая строка пути использует символ разделителя separator по умолчанию для разделения имён в пути.

Overrides:
toString в классе Object
Возвращает:
строковое представление этого пути

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/nio/file/Path.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API