Spec-Zone.ru › OpenJDK 25

Класс FileSystemProvider

java.lang.Object
java.nio.file.spi.FileSystemProvider
public abstract class FileSystemProvider extends Object
Класс поставщика служб для файловых систем. Методы, определённые классом Files, обычно делегируют выполнение экземпляру этого класса.

Поставщик файловой системы — это конкретная реализация данного класса, реализующая определённые в нём абстрактные методы. Поставщик идентифицируется с помощью URI scheme. Поставщик по умолчанию идентифицируется схемой URI «file». Он создаёт FileSystem, обеспечивающую доступ к файловым системам, доступным виртуальной машине Java. Класс FileSystems определяет способ поиска и загрузки поставщиков файловых систем. Обычно поставщиком по умолчанию является системный поставщик, но его можно переопределить, установив системное свойство java.nio.file.spi.DefaultFileSystemProvider. В этом случае у поставщика есть конструктор с одним аргументом, тип формального параметра которого — FileSystemProvider. У всех остальных поставщиков есть конструктор без аргументов, который инициализирует поставщик.

Поставщик служит фабрикой для одного или нескольких экземпляров FileSystem. Каждая файловая система идентифицируется с помощью URI, схема URI которого совпадает с scheme поставщика. Например, файловая система по умолчанию идентифицируется URI "file:///". Файловая система на основе памяти, например, может идентифицироваться URI вида "memory:///?name=logfs". Метод newFileSystem можно использовать для создания файловой системы, а метод getFileSystem — для получения ссылки на существующую файловую систему, созданную поставщиком. Если поставщик является фабрикой для одной файловой системы, то решение о том, создаётся ли файловая система при инициализации поставщика или позже, при вызове метода newFileSystem, зависит от поставщика. В случае поставщика по умолчанию FileSystem создаётся при инициализации поставщика.

Все методы этого класса безопасно использовать из нескольких параллельно работающих потоков.

Начиная с:
1.7

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

FileSystemProvider()
Модификатор Конструктор Описание
protected
Инициализирует новый экземпляр этого класса.

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

Модификатор и тип Метод Описание
abstract void checkAccess(Path path, AccessMode... modes)
Проверяет существование файла и, при необходимости, возможность доступа к нему.
abstract void copy(Path source, Path target, CopyOption... options)
Копирует файл в целевой файл.
abstract void createDirectory(Path dir, FileAttribute<?>... attrs)
Создаёт новый каталог.
void createLink(Path link, Path existing)
Создаёт новую ссылку (запись каталога) на существующий файл.
void createSymbolicLink(Path link, Path target, FileAttribute<?>... attrs)
Создаёт символическую ссылку на целевой объект.
abstract void delete(Path path)
Удаляет файл.
boolean deleteIfExists(Path path)
Удаляет файл, если он существует.
boolean exists(Path path, LinkOption... options)
Проверяет, существует ли файл.
abstract <V extends FileAttributeView>
V
getFileAttributeView(Path path, Class<V> type, LinkOption... options)
Возвращает представление атрибутов файла указанного типа.
abstract FileStore getFileStore(Path path)
Возвращает FileStore, представляющее хранилище файлов, в котором находится файл.
abstract FileSystem getFileSystem(URI uri)
Возвращает существующую FileSystem, созданную этим поставщиком.
abstract Path getPath(URI uri)
Возвращает объект Path, преобразуя заданный URI.
abstract String getScheme()
Возвращает схему URI, идентифицирующую этот поставщик.
static List<FileSystemProvider> installedProviders()
Возвращает список установленных поставщиков файловых систем.
abstract boolean isHidden(Path path)
Сообщает, считается ли файл скрытым.
abstract boolean isSameFile(Path path, Path path2)
Проверяет, указывают ли два пути на один и тот же файл.
abstract void move(Path source, Path target, CopyOption... options)
Перемещает файл в целевой файл или переименовывает его.
AsynchronousFileChannel newAsynchronousFileChannel(Path path, Set<? extends OpenOption> options, ExecutorService executor, FileAttribute<?>... attrs)
Открывает или создаёт файл для чтения и/или записи, возвращая асинхронный файловый канал для доступа к файлу.
abstract SeekableByteChannel newByteChannel(Path path, Set<? extends OpenOption> options, FileAttribute<?>... attrs)
Открывает или создаёт файл, возвращая канал байтов с произвольным доступом для доступа к файлу.
abstract DirectoryStream<Path> newDirectoryStream(Path dir, DirectoryStream.Filter<? super Path> filter)
Открывает каталог и возвращает DirectoryStream для перебора его записей.
FileChannel newFileChannel(Path path, Set<? extends OpenOption> options, FileAttribute<?>... attrs)
Открывает или создаёт файл для чтения и/или записи, возвращая файловый канал для доступа к файлу.
abstract FileSystem newFileSystem(URI uri, Map<String,?> env)
Создаёт новый объект FileSystem, идентифицируемый URI.
FileSystem newFileSystem(Path path, Map<String,?> env)
Создаёт новый FileSystem для доступа к содержимому файла в виде файловой системы.
InputStream newInputStream(Path path, OpenOption... options)
Открывает файл и возвращает входной поток для чтения из него.
OutputStream newOutputStream(Path path, OpenOption... options)
Открывает или создаёт файл и возвращает выходной поток, который можно использовать для записи байтов в файл.
abstract <A extends BasicFileAttributes>
A
readAttributes(Path path, Class<A> type, LinkOption... options)
Считывает атрибуты файла одной операцией.
abstract Map<String,Object> readAttributes(Path path, String attributes, LinkOption... options)
Считывает набор атрибутов файла одной операцией.
<A extends BasicFileAttributes>
A
readAttributesIfExists(Path path, Class<A> type, LinkOption... options)
Считывает атрибуты файла одной операцией, если он существует.
Path readSymbolicLink(Path link)
Читает цель символической ссылки.
abstract void setAttribute(Path path, String attribute, Object value, LinkOption... options)
Задаёт значение атрибута файла.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

FileSystemProvider

protected FileSystemProvider()
Инициализирует новый экземпляр этого класса.

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

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

installedProviders

public static List<FileSystemProvider> installedProviders()
Возвращает список установленных провайдеров файловых систем.

Первый вызов этого метода приводит к инициализации провайдера по умолчанию (если он еще не инициализирован) и загружает все остальные установленные провайдеры, как описано в классе FileSystems.

Возвращает:
Немодифицируемый список установленных провайдеров файловых систем. Список содержит как минимум один элемент — провайдер файловой системы по умолчанию
Вызывает:
ServiceConfigurationError — При возникновении ошибки во время загрузки поставщика службы

getScheme

public abstract String getScheme()
Возвращает схему URI, идентифицирующую этот провайдер.
Возвращает:
Схему URI

newFileSystem

public abstract FileSystem newFileSystem(URI uri, Map<String,?> env) throws IOException
Создает новый объект FileSystem, идентифицируемый URI. Этот метод вызывается методом FileSystems.newFileSystem(URI,Map) для открытия новой файловой системы, идентифицируемой URI.

Параметр uri — это абсолютный иерархический URI со схемой, совпадающей (без учета регистра) со схемой, поддерживаемой этим провайдером. Точный формат URI во многом зависит от провайдера. Параметр env представляет собой карту свойств, специфичных для провайдера, для настройки файловой системы.

Этот метод вызывает исключение FileSystemAlreadyExistsException, если файловая система уже существует, поскольку ранее она была создана вызовом этого метода. После closed файловой системы возможность создания провайдером новой файловой системы с тем же URI, что и у ранее созданной, зависит от провайдера.

Параметры:
uri — ссылка URI
env — карта свойств, специфичных для провайдера, для настройки файловой системы; может быть пустой
Возвращает:
Новую файловую систему
Вызывает:
IllegalArgumentException — Если не выполнены предварительные условия для параметра uri, параметр env не содержит свойств, необходимых провайдеру, или значение свойства недопустимо
IOException — При возникновении ошибки ввода-вывода во время создания файловой системы
FileSystemAlreadyExistsException — Если файловая система уже создана

getFileSystem

public abstract FileSystem getFileSystem(URI uri)
Возвращает существующую файловую систему FileSystem, созданную этим провайдером.

Этот метод возвращает ссылку на файловую систему FileSystem, созданную вызовом метода newFileSystem(URI,Map). Файловые системы, созданные методом newFileSystem(Path,Map), этим методом не возвращаются. Файловая система идентифицируется своим URI. Точный формат во многом зависит от провайдера. Для провайдера по умолчанию компонент пути URI — "/", а компоненты полномочий, запроса и фрагмента не определены (неопределенные компоненты представлены значением null).

После closed файловой системы, созданной этим провайдером, поведение этого метода зависит от провайдера: он может вернуть ссылку на закрытую файловую систему или вызвать исключение FileSystemNotFoundException. Если провайдер допускает создание новой файловой системы с тем же URI, что и у ранее созданной, то при вызове этого метода после закрытия файловой системы (и до создания нового экземпляра методом newFileSystem) возникает исключение.

Параметры:
uri — ссылка URI
Возвращает:
Файловую систему
Вызывает:
IllegalArgumentException — Если не выполнены предварительные условия для параметра uri
FileSystemNotFoundException — Если файловая система не существует

getPath

public abstract Path getPath(URI uri)
Возвращает объект Path, преобразуя заданный URI. Полученный объект Path связан с уже существующей FileSystem или с файловой системой, создаваемой автоматически.

Точный формат URI зависит от провайдера файловой системы. Для провайдера по умолчанию схема URI — "file", заданный URI имеет непустой компонент пути, а компоненты запроса и фрагмента не определены. Полученный объект Path связан с FileSystem файловой системы default по умолчанию.

Параметры:
uri — URI для преобразования
Возвращает:
Полученный объект Path
Вызывает:
IllegalArgumentException — Если схема URI не идентифицирует этот провайдер или не выполнены другие предварительные условия для параметра uri
FileSystemNotFoundException — Файловая система, идентифицируемая URI, не существует и не может быть создана автоматически

newFileSystem

public FileSystem newFileSystem(Path path, Map<String,?> env) throws IOException
Создает новую файловую систему FileSystem для доступа к содержимому файла в качестве файловой системы.

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

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

Параметры:
path — путь к файлу
env — карта свойств, специфичных для провайдера, для настройки файловой системы; может быть пустой
Возвращает:
Новую файловую систему
Вызывает:
UnsupportedOperationException — Если этот провайдер не поддерживает доступ к содержимому в качестве файловой системы или не распознает тип заданного файла
IllegalArgumentException — Если параметр env не содержит свойств, необходимых провайдеру, или значение свойства недопустимо
IOException — При возникновении ошибки ввода-вывода

newInputStream

public InputStream newInputStream(Path path, OpenOption... options) throws IOException
Открывает файл и возвращает поток ввода для чтения из файла. Этот метод работает в точности так, как указано в методе Files.newInputStream(Path, OpenOption...).

Реализация этого метода по умолчанию открывает канал к файлу, как если бы был вызван метод newByteChannel(Path, Set, FileAttribute...), и создает поток, считывающий байты из канала. При необходимости этот метод следует переопределить.

Параметры:
path — путь к файлу, который нужно открыть
options — параметры, указывающие, как открыть файл
Возвращает:
новый поток ввода
Вызывает:
IllegalArgumentException — если задана недопустимая комбинация параметров
UnsupportedOperationException — если задан неподдерживаемый параметр
IOException — при возникновении ошибки ввода-вывода

newOutputStream

public OutputStream newOutputStream(Path path, OpenOption... options) throws IOException
Открывает или создает файл и возвращает поток вывода, который можно использовать для записи байтов в файл. Этот метод работает в точности так, как указано в методе Files.newOutputStream(Path, OpenOption...).

Реализация этого метода по умолчанию открывает канал к файлу, как если бы был вызван метод newByteChannel(Path, Set, FileAttribute...), и создает поток, записывающий байты в канал. При необходимости этот метод следует переопределить.

Параметры:
path — путь к файлу, который нужно открыть или создать
options — параметры, указывающие, как открыть файл
Возвращает:
новый поток вывода
Вызывает:
IllegalArgumentException — если options содержит недопустимую комбинацию параметров
UnsupportedOperationException — если задан неподдерживаемый параметр
IOException — при возникновении ошибки ввода-вывода
FileAlreadyExistsException — Если файл с таким именем уже существует и задан параметр CREATE_NEW (необязательное конкретное исключение)

newFileChannel

public FileChannel newFileChannel(Path path, Set<? extends OpenOption> options, FileAttribute<?>... attrs) throws IOException
Открывает или создает файл для чтения и/или записи и возвращает файловый канал для доступа к файлу. Этот метод работает в точности так, как указано в методе FileChannel.open. Провайдер, не поддерживающий все возможности, необходимые для создания файлового канала, вызывает исключение UnsupportedOperationException. Провайдер по умолчанию должен поддерживать создание файловых каналов. Если реализация не переопределена, реализация по умолчанию вызывает исключение UnsupportedOperationException.
Параметры:
path — путь к файлу, который нужно открыть или создать
options — параметры, указывающие, как открыть файл
attrs — необязательный список атрибутов файла, которые нужно задать атомарно при создании файла
Возвращает:
новый файловый канал
Вызывает:
IllegalArgumentException — Если набор содержит недопустимую комбинацию параметров
UnsupportedOperationException — Если этот провайдер не поддерживает создание файловых каналов либо задан неподдерживаемый параметр открытия или атрибут файла
FileAlreadyExistsException — Если файл с таким именем уже существует, задан параметр CREATE_NEW и файл открывается для записи (необязательное конкретное исключение)
IOException — При возникновении ошибки ввода-вывода

newAsynchronousFileChannel

public AsynchronousFileChannel newAsynchronousFileChannel(Path path, Set<? extends OpenOption> options, ExecutorService executor, FileAttribute<?>... attrs) throws IOException
Открывает или создает файл для чтения и/или записи и возвращает асинхронный файловый канал для доступа к файлу. Этот метод работает в точности так, как указано в методе AsynchronousFileChannel.open. Провайдер, не поддерживающий все возможности, необходимые для создания асинхронного файлового канала, вызывает исключение UnsupportedOperationException. Провайдер по умолчанию должен поддерживать создание асинхронных файловых каналов. Если реализация не переопределена, реализация этого метода по умолчанию вызывает исключение UnsupportedOperationException.
Параметры:
path — путь к файлу, который нужно открыть или создать
options — параметры, указывающие, как открыть файл
executor — пул потоков или null для связи канала с пулом потоков по умолчанию
attrs — необязательный список атрибутов файла, которые нужно задать атомарно при создании файла
Возвращает:
новый асинхронный файловый канал
Вызывает:
IllegalArgumentException — Если набор содержит недопустимую комбинацию параметров
UnsupportedOperationException — Если этот провайдер не поддерживает создание асинхронных файловых каналов либо задан неподдерживаемый параметр открытия или атрибут файла
FileAlreadyExistsException — Если файл с таким именем уже существует, задан параметр CREATE_NEW и файл открывается для записи (необязательное конкретное исключение)
IOException — При возникновении ошибки ввода-вывода

newByteChannel

public abstract SeekableByteChannel newByteChannel(Path path, Set<? extends OpenOption> options, FileAttribute<?>... attrs) throws IOException
Открывает или создает файл и возвращает канал с произвольным доступом к байтам для работы с файлом. Этот метод работает в точности так, как указано в методе Files.newByteChannel(Path,Set,FileAttribute[]).
Параметры:
path — путь к файлу, который нужно открыть или создать
options — параметры, указывающие, как открыть файл
attrs — необязательный список атрибутов файла, которые нужно задать атомарно при создании файла
Возвращает:
новый канал с произвольным доступом к байтам
Вызывает:
IllegalArgumentException — если набор содержит недопустимую комбинацию параметров
UnsupportedOperationException — если задан неподдерживаемый параметр открытия или массив содержит атрибуты, которые нельзя задать атомарно при создании файла
FileAlreadyExistsException — Если файл с таким именем уже существует, задан параметр CREATE_NEW и файл открывается для записи (необязательное конкретное исключение)
IOException — при возникновении ошибки ввода-вывода

newDirectoryStream

public abstract DirectoryStream<Path> newDirectoryStream(Path dir, DirectoryStream.Filter<? super Path> filter) throws IOException
Открывает каталог и возвращает DirectoryStream для перебора записей в каталоге. Этот метод работает в точности так, как указано в методе Files.newDirectoryStream(java.nio.file.Path, java.nio.file.DirectoryStream.Filter).
Параметры:
dir — путь к каталогу
filter — фильтр потока каталога
Возвращает:
новый открытый объект DirectoryStream
Вызывает:
NotDirectoryException — если файл иначе не удалось открыть, поскольку он не является каталогом (необязательное конкретное исключение)
IOException — при возникновении ошибки ввода-вывода

createDirectory

public abstract void createDirectory(Path dir, FileAttribute<?>... attrs) throws IOException
Создает новый каталог. Этот метод работает в точности так, как указано в методе Files.createDirectory(Path, FileAttribute...).
Параметры:
dir — каталог, который нужно создать
attrs — необязательный список атрибутов файла, которые нужно задать атомарно при создании каталога
Вызывает:
UnsupportedOperationException — если массив содержит атрибут, который нельзя задать атомарно при создании каталога
FileAlreadyExistsException — если каталог иначе не удалось создать, поскольку файл с таким именем уже существует (необязательное конкретное исключение)
IOException — при возникновении ошибки ввода-вывода или если родительский каталог не существует

createSymbolicLink

public void createSymbolicLink(Path link, Path target, FileAttribute<?>... attrs) throws IOException
Создает символическую ссылку на целевой объект. Этот метод работает в точности так, как указано в методе Files.createSymbolicLink(Path, Path, FileAttribute...).

Реализация этого метода по умолчанию вызывает исключение UnsupportedOperationException.

Параметры:
link — путь символической ссылки, которую нужно создать
target — целевой объект символической ссылки
attrs — массив атрибутов, которые нужно задать атомарно при создании символической ссылки
Вызывает:
UnsupportedOperationException — если реализация не поддерживает символические ссылки или массив содержит атрибут, который нельзя задать атомарно при создании символической ссылки
FileAlreadyExistsException — если файл с таким именем уже существует (необязательное конкретное исключение)
IOException — при возникновении ошибки ввода-вывода

createLink

public void createLink(Path link, Path existing) throws IOException
Создает новую ссылку (запись каталога) на существующий файл. Этот метод работает в точности так, как указано в методе Files.createLink(Path, Path).

Реализация этого метода по умолчанию вызывает исключение UnsupportedOperationException.

Параметры:
link — ссылка (запись каталога), которую нужно создать
existing — путь к существующему файлу
Вызывает:
UnsupportedOperationException — если реализация не поддерживает добавление существующего файла в каталог
FileAlreadyExistsException — если запись иначе не удалось создать, поскольку файл с таким именем уже существует (необязательное конкретное исключение)
IOException — при возникновении ошибки ввода-вывода

delete

public abstract void delete(Path path) throws IOException
Удаляет файл. Этот метод работает в точности так, как указано в методе Files.delete(Path).
Параметры:
path — путь к файлу, который нужно удалить
Вызывает:
NoSuchFileException — если файл не существует (необязательное конкретное исключение)
DirectoryNotEmptyException — если файл является каталогом и его иначе не удалось удалить, поскольку каталог не пуст (необязательное конкретное исключение)
IOException — при возникновении ошибки ввода-вывода

deleteIfExists

public boolean deleteIfExists(Path path) throws IOException
Удаляет файл, если он существует. Этот метод работает в точности так, как указано в методе Files.deleteIfExists(Path).

Реализация этого метода по умолчанию просто вызывает delete(Path), игнорируя NoSuchFileException, если файл не существует. При необходимости этот метод можно переопределить.

Параметры:
path — путь к файлу, который нужно удалить
Возвращает:
true, если файл был удален этим методом; false, если файл не удалось удалить, поскольку он не существовал
Вызывает:
DirectoryNotEmptyException — если файл является каталогом и его иначе не удалось удалить, поскольку каталог не пуст (необязательное конкретное исключение)
IOException — при возникновении ошибки ввода-вывода

readSymbolicLink

public Path readSymbolicLink(Path link) throws IOException
Считывает цель символической ссылки. Этот метод работает в точности так, как указано в методе Files.readSymbolicLink(Path).

Реализация этого метода по умолчанию вызывает исключение UnsupportedOperationException.

Параметры:
link — путь к символической ссылке
Возвращает:
Цель символической ссылки
Вызывает:
UnsupportedOperationException — если реализация не поддерживает символические ссылки
NotLinkException — если цель иначе не удалось прочитать, поскольку файл не является символической ссылкой (необязательное конкретное исключение)
IOException — при возникновении ошибки ввода-вывода

copy

public abstract void copy(Path source, Path target, CopyOption... options) throws IOException
Копирует файл в целевой файл. Этот метод работает в точности так, как указано в методе Files.copy(Path,Path,CopyOption[]), за исключением того, что пути источника и цели должны быть связаны с этим провайдером.
Параметры:
source — путь к файлу, который нужно скопировать
target — путь к целевому файлу
options — параметры, определяющие способ копирования
Вызывает:
UnsupportedOperationException — если массив содержит неподдерживаемый параметр копирования
FileAlreadyExistsException — если целевой файл существует, но его нельзя заменить, поскольку не задан параметр REPLACE_EXISTING (необязательное конкретное исключение)
DirectoryNotEmptyException — если задан параметр REPLACE_EXISTING, но файл нельзя заменить, поскольку он является непустым каталогом (необязательное конкретное исключение)
IOException — при возникновении ошибки ввода-вывода

move

public abstract void move(Path source, Path target, CopyOption... options) throws IOException
Перемещает или переименовывает файл, задавая целевой файл. Этот метод работает в точности так, как указано в методе Files.move(Path, Path, CopyOption...), за исключением того, что пути источника и цели должны быть связаны с этим провайдером.
Параметры:
source — путь к файлу, который нужно переместить
target — путь к целевому файлу
options — параметры, определяющие способ перемещения
Вызывает:
UnsupportedOperationException — если массив содержит неподдерживаемый параметр копирования
FileAlreadyExistsException — если целевой файл существует, но его нельзя заменить, поскольку не задан параметр REPLACE_EXISTING (необязательное конкретное исключение)
DirectoryNotEmptyException — если задан параметр REPLACE_EXISTING, но файл нельзя заменить, поскольку он является непустым каталогом (необязательное конкретное исключение)
AtomicMoveNotSupportedException — если массив параметров содержит параметр ATOMIC_MOVE, но файл нельзя переместить как атомарную операцию файловой системы.
IOException — при возникновении ошибки ввода-вывода

isSameFile

public abstract boolean isSameFile(Path path, Path path2) throws IOException
Проверяет, указывают ли два пути на один и тот же файл. Этот метод работает в точности так, как указано в методе Files.isSameFile(Path, Path).
Параметры:
path — один из путей к файлу
path2 — другой путь
Возвращает:
true, если и только если оба пути указывают на один и тот же файл
Вызывает:
IOException — при возникновении ошибки ввода-вывода

isHidden

public abstract boolean isHidden(Path path) throws IOException
Сообщает, считается ли файл скрытым. Этот метод работает в точности так, как указано в методе Files.isHidden(Path).

Этот метод вызывается методом isHidden.

Параметры:
path — путь к файлу для проверки
Возвращает:
true, если файл считается скрытым
Вызывает:
IOException — при возникновении ошибки ввода-вывода

getFileStore

public abstract FileStore getFileStore(Path path) throws IOException
Возвращает объект FileStore, представляющий хранилище файлов, в котором находится файл. Этот метод работает в точности так, как указано в методе Files.getFileStore(Path).
Параметры:
path — путь к файлу
Возвращает:
хранилище файлов, в котором находится файл
Вызывает:
IOException — при возникновении ошибки ввода-вывода

checkAccess

public abstract void checkAccess(Path path, AccessMode... modes) throws IOException
Проверяет существование файла и, при необходимости, возможность доступа к нему.

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

Этот метод проверяет существование файла и наличие у данной виртуальной машины Java соответствующих разрешений, позволяющих получить доступ к файлу в соответствии со всеми режимами доступа, указанными в параметре modes, следующим образом:

Режимы доступа
Значение Описание
READ Проверяет, существует ли файл и имеет ли виртуальная машина Java разрешение на чтение файла.
WRITE Проверяет, существует ли файл и имеет ли виртуальная машина Java разрешение на запись в файл.
EXECUTE Проверяет, существует ли файл и имеет ли виртуальная машина Java разрешение на execute файла. Семантика проверки доступа к каталогу может отличаться. Например, в системах UNIX проверка доступа EXECUTE означает проверку наличия у виртуальной машины Java разрешения на поиск в каталоге для доступа к файлам или подкаталогам.

Если параметр modes имеет нулевую длину, проверяется существование файла.

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

Параметры:
path — путь к файлу, доступ к которому проверяется
modes — проверяемые режимы доступа; может содержать ноль элементов
Исключения:
UnsupportedOperationException — реализация должна поддерживать проверку доступа READ, WRITE и EXECUTE. Это исключение предусмотрено для того, чтобы перечисление Access можно было расширить в будущих выпусках.
NoSuchFileException — если файл не существует (необязательное специализированное исключение)
AccessDeniedException — если в запрошенном доступе будет отказано или доступ невозможно определить из-за недостаточных разрешений виртуальной машины Java либо по другим причинам. (необязательное специализированное исключение)
IOException — если возникает ошибка ввода-вывода

getFileAttributeView

public abstract <V extends FileAttributeView> V getFileAttributeView(Path path, Class<V> type, LinkOption... options)
Возвращает представление атрибутов файла заданного типа. Этот метод работает точно так, как указано в методе Files.getFileAttributeView(Path, Class, LinkOption...).
Параметры типа:
V — тип FileAttributeView
Параметры:
path — путь к файлу
type — объект Class, соответствующий представлению атрибутов файла
options — параметры, определяющие способ обработки символических ссылок
Возвращает:
представление атрибутов файла указанного типа или null, если тип представления атрибутов недоступен

readAttributes

public abstract <A extends BasicFileAttributes> A readAttributes(Path path, Class<A> type, LinkOption... options) throws IOException
Считывает атрибуты файла одной групповой операцией. Этот метод работает точно так, как указано в методе Files.readAttributes(Path,Class,LinkOption[]).
Параметры типа:
A — тип BasicFileAttributes
Параметры:
path — путь к файлу
type — Class атрибутов файла, которые требуется считать
options — параметры, определяющие способ обработки символических ссылок
Возвращает:
атрибуты файла
Исключения:
UnsupportedOperationException — если атрибуты указанного типа не поддерживаются
IOException — если возникает ошибка ввода-вывода

readAttributes

public abstract Map<String,Object> readAttributes(Path path, String attributes, LinkOption... options) throws IOException
Считывает набор атрибутов файла одной групповой операцией. Этот метод работает точно так, как указано в методе Files.readAttributes(Path,String,LinkOption[]).
Параметры:
path — путь к файлу
attributes — считываемые атрибуты
options — параметры, определяющие способ обработки символических ссылок
Возвращает:
карта возвращенных атрибутов; может быть пустой. Ключи карты — имена атрибутов, значения — значения атрибутов
Исключения:
UnsupportedOperationException — если представление атрибутов недоступно
IllegalArgumentException — если атрибуты не указаны или указан нераспознанный атрибут
IOException — если возникает ошибка ввода-вывода

setAttribute

public abstract void setAttribute(Path path, String attribute, Object value, LinkOption... options) throws IOException
Задает значение атрибута файла. Этот метод работает точно так, как указано в методе Files.setAttribute(Path, String, Object, LinkOption...).
Параметры:
path — путь к файлу
attribute — задаваемый атрибут
value — значение атрибута
options — параметры, определяющие способ обработки символических ссылок
Исключения:
UnsupportedOperationException — если представление атрибутов недоступно
IllegalArgumentException — если имя атрибута не указано или не распознано либо значение атрибута имеет правильный тип, но недопустимое значение
ClassCastException — если значение атрибута имеет неожидаемый тип или представляет собой коллекцию, содержащую элементы неожидаемого типа
IOException — если возникает ошибка ввода-вывода

exists

public boolean exists(Path path, LinkOption... options)
Проверяет, существует ли файл. Этот метод работает точно так, как указано в методе Files.exists(Path, LinkOption...).
Требования к реализации:
Реализация этого метода по умолчанию вызывает метод checkAccess(Path, AccessMode...), если переход по символическим ссылкам разрешен. Если указан параметр NOFOLLOW_LINKS, переход по символическим ссылкам не выполняется и вызывается метод readAttributes(Path, Class, LinkOption...) для определения существования файла.
Параметры:
path — путь к проверяемому файлу
options — параметры, определяющие способ обработки символических ссылок
Возвращает:
true, если файл существует; false, если файл не существует или невозможно определить, существует ли он.
С момента:
20

readAttributesIfExists

public <A extends BasicFileAttributes> A readAttributesIfExists(Path path, Class<A> type, LinkOption... options) throws IOException
Считывает атрибуты файла одной групповой операцией, если файл существует.

Параметр type задает тип требуемых атрибутов; если этот тип поддерживается, метод возвращает экземпляр данного типа. Все реализации поддерживают базовый набор атрибутов файла, поэтому вызов этого метода с параметром type типа BasicFileAttributes.class не приведет к возникновению UnsupportedOperationException.

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

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

Требования к реализации:
Реализация этого метода по умолчанию вызывает метод readAttributes(Path, Class, LinkOption...) для считывания атрибутов файла.
Параметры типа:
A — тип BasicFileAttributes
Параметры:
path — путь к файлу
type — Class атрибутов файла, которые требуется считать
options — параметры, определяющие способ обработки символических ссылок
Возвращает:
атрибуты файла или null, если файл не существует
Исключения:
UnsupportedOperationException — если атрибуты указанного типа не поддерживаются
IOException — если возникает ошибка ввода-вывода
С момента:
20

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/nio/file/spi/FileSystemProvider.html

Spec-Zone.ru

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