Путь к файлу
- Все суперинтерфейсы:
-
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 |
Сравнивает два абстрактных пути лексикографически. |
default boolean |
endsWith |
Проверяет, заканчивается ли этот путь на Path, построенный путём преобразования заданной строки пути, точно так же, как указано в методе endsWith(Path). |
boolean |
endsWith |
Проверяет, заканчивается ли этот путь заданным путём. |
boolean |
equals |
Проверяет этот путь на равенство с заданным объектом. |
Path |
getFileName() |
Возвращает имя файла или каталога, обозначаемого этим путём, как объект Path. |
FileSystem |
getFileSystem() |
Возвращает файловую систему, которая создала этот объект. |
Path |
getName |
Возвращает элемент имени этого пути как объект Path. |
int |
getNameCount() |
Возвращает количество элементов имени в пути. |
Path |
getParent() |
Возвращает родительский путь, или null, если у этого пути нет родителя. |
Path |
getRoot() |
Возвращает корневой компонент этого пути как объект Path, или null, если у этого пути нет корневого компонента. |
int |
hashCode() |
Вычисляет код хэша для этого пути. |
boolean |
isAbsolute() |
Указывает, является ли этот путь абсолютным. |
default Iterator |
iterator() |
Возвращает итератор по элементам имени этого пути. |
Path |
normalize() |
Возвращает путь, который является этим путём с удалёнными избыточными элементами имени. |
static Path |
of |
Возвращает Path, преобразуя строку пути или последовательность строк, которые при объединении образуют строку пути. |
static Path |
of |
Возвращает Path, преобразуя URI. |
default WatchKey |
register |
Регистрирует файл, расположенный по этому пути, в службе отслеживания. |
WatchKey |
register |
Регистрирует файл, расположенный по этому пути, в службе отслеживания. |
Path |
relativize |
Строит относительный путь между этим путём и заданным путём. |
default Path |
resolve |
Преобразует заданную строку пути в Path и разрешает её относительно этого Path точно так же, как указано в методе resolve. |
default Path |
resolve |
Преобразует строку пути в путь, разрешает этот путь относительно этого пути, а затем итеративно выполняет ту же процедуру для любых дополнительных строк пути. |
Path |
resolve |
Разрешает заданный путь относительно этого пути. |
default Path |
resolve |
Разрешает путь относительно этого пути, а затем итеративно разрешает любые дополнительные пути. |
default Path |
resolveSibling |
Преобразует заданную строку пути в Path и разрешает её относительно пути родителя этого пути parent точно так же, как указано в методе resolveSibling. |
default Path |
resolveSibling |
Разрешает заданный путь относительно пути родителя этого пути parent. |
default boolean |
startsWith |
Проверяет, начинается ли этот путь с Path, построенного путём преобразования заданной строки пути, точно так же, как указано в методе startsWith(Path). |
boolean |
startsWith |
Проверяет, начинается ли этот путь с заданного пути. |
Path |
subpath |
Возвращает относительный Path, который является подпоследовательностью элементов имени этого пути. |
Path |
toAbsolutePath() |
Возвращает объект Path, представляющий абсолютный путь этого пути. |
default File |
toFile() |
Возвращает объект File, представляющий этот путь. |
Path |
toRealPath |
Возвращает действительный путь существующего файла. |
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
- См. также:
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()
Точное определение этого метода зависит от реализации, но в целом он выводится из этого пути, пути, не содержащего избыточных элементов имени. Во многих файловых системах "." и ".." являются специальными именами, используемыми для указания текущей директории и родительской директории. В таких файловых системах все вхождения "." считаются избыточными. Если ".." предшествует не-".." имени, то оба имени считаются избыточными (процесс идентификации таких имён повторяется до тех пор, пока он больше не применим).
Этот метод не обращается к файловой системе; путь может не указывать на существующий файл. Удаление ".." и предшествующего имени из пути может привести к пути, указывающему на другой файл, чем исходный путь. Это может произойти, когда предшествующее имя является символической ссылкой.
- Возвращает:
- результирующий путь или этот путь, если он не содержит избыточных элементов имени; возвращается пустой путь, если у этого пути нет корневого компонента и все элементы имени являются избыточными
- См. также:
resolve
Path resolve(Path other)
Если путь other является absolute путём, то этот метод тривиально возвращает other. Если other является пустым путём, то этот метод тривиально возвращает этот путь. В противном случае этот метод рассматривает этот путь как директорию и разрешает заданный путь относительно этого пути. В самом простом случае, заданный путь не имеет компонента root, в этом случае этот метод объединяет заданный путь с этим путём и возвращает результирующий путь, который ends с заданным путём. В случае, когда заданный путь имеет корневой компонент, разрешение сильно зависит от реализации и поэтому не определено.
- Параметры:
-
other- путь для разрешения относительно этого пути - Возвращает:
- результирующий путь
- См. также:
resolve
default Path resolve(String other)
Path и разрешает её относительно этого Path точно так же, как указано в методе resolve. Например, предположим, что разделитель имени - "/", и путь представляет "foo/bar", тогда вызов этого метода со строкой пути "gus" приведёт к пути Path "foo/bar/gus".- Требования к реализации:
- Стандартная реализация эквивалентна для этого пути:
resolve(getFileSystem().getPath(other)); - Параметры:
-
other- строка пути для разрешения относительно этого пути - Возвращает:
- результирующий путь
- Исключения:
-
InvalidPathException- если строка пути не может быть преобразована в Path. - См. также:
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
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
- См. также:
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- путь для разрешения относительно родительского пути текущего пути - Возвращает:
- результирующий путь
- См. также:
resolveSibling
default Path resolveSibling(String other)
Path и разрешает ее относительно родительского пути текущего пути (parent) точно так же, как указано в методе resolveSibling.- Требования к реализации:
- Стандартная реализация эквивалентна для этого пути:
resolveSibling(getFileSystem().getPath(other)); - Параметры:
-
other- строка пути для разрешения относительно родительского пути текущего пути - Возвращает:
- результирующий путь
- Исключения:
-
InvalidPathException- если строку пути нельзя преобразовать в Path. - См. также:
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 с 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.
hashCode
int hashCode()
Код хеширования основан на компонентах пути и удовлетворяет общему соглашению метода Object.hashCode.
toString
String toString()
Если этот путь был создан путём преобразования строкового пути, используя метод getPath, то строковый путь, возвращаемый этим методом, может отличаться от исходной строки, используемой для создания пути.
Возвращаемая строка пути использует символ разделителя separator по умолчанию для разделения имён в пути.
© 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