Spec-Zone.ru › OpenJDK 24

Класс 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)
Устанавливает значение атрибута файла.

Методы, объявленные в классе java.lang.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 связан с файловой системой по умолчанию default FileSystem.

Параметры:
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(java.nio.file.Path, java.nio.file.OpenOption...).

По умолчанию этот метод открывает канал к файлу, как будто вызывая метод newByteChannel(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>...), и создаёт поток, читающий байты из канала. Этот метод следует переопределять при необходимости.

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

newOutputStream

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

По умолчанию этот метод открывает канал к файлу, как будто вызывая метод newByteChannel(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.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.
Parameters:
path - путь к файлу для открытия или создания
options - параметры, определяющие, как открывается файл
attrs - необязательный список атрибутов файла, которые должны быть установлены атомарно при создании файла
Returns:
новый канал файла
Throws:
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.
Parameters:
path - путь к файлу для открытия или создания
options - параметры, определяющие, как открывается файл
executor - пул потоков или null для ассоциации канала с пулом потоков по умолчанию
attrs - необязательный список атрибутов файла, которые должны быть установлены атомарно при создании файла
Returns:
новый асинхронный канал файла
Throws:
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[]).
Parameters:
path - путь к файлу для открытия или создания
options - параметры, определяющие, как открывается файл
attrs - необязательный список атрибутов файла, которые должны быть установлены атомарно при создании файла
Returns:
новый доступный для поиска байтовый канал
Throws:
IllegalArgumentException - если набор содержит недопустимое сочетание параметров
UnsupportedOperationException - если указан недопустимый параметр открытия или массив содержит атрибуты, которые не могут быть установлены атомарно при создании файла
FileAlreadyExistsException - Если файл с таким именем уже существует, и параметр CREATE_NEW указан, и файл открывается для записи (дополнительное специфическое исключение)
IOException - если произошла ошибка ввода-вывода

newDirectoryStream

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

createDirectory

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

createSymbolicLink

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

Стандартная реализация этого метода выбрасывает UnsupportedOperationException.

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

createLink

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

Стандартная реализация этого метода выбрасывает UnsupportedOperationException.

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

delete

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

deleteIfExists

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

Стандартная реализация этого метода просто вызывает delete(java.nio.file.Path), игнорируя NoSuchFileException, когда файла не существует. Может быть переопределена, где необходимо.

Parameters:
path - путь к файлу для удаления
Returns:
true, если файл был удалён; false, если файл не был удалён, так как не существовал
Throws:
DirectoryNotEmptyException - если файл является директорией и не может быть удалён, так как директория не пуста (дополнительное специфическое исключение)
IOException - если произошла ошибка ввода-вывода

readSymbolicLink

public Path readSymbolicLink(Path link) throws IOException
Читает целевой объект символической ссылки. Этот метод работает точно так же, как и метод Files.readSymbolicLink(java.nio.file.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(java.nio.file.Path, java.nio.file.Path, java.nio.file.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(java.nio.file.Path, java.nio.file.Path).
Параметры:
path - один путь к файлу
path2 - другой путь
Возвращает:
true тогда и только тогда, когда оба пути указывают на один и тот же файл
Исключения:
IOException - если произошла ошибка ввода-вывода

isHidden

public abstract boolean isHidden(Path path) throws IOException
Определяет, является ли файл скрытым. Этот метод работает точно так же, как и метод Files.isHidden(java.nio.file.Path).

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

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

getFileStore

public abstract FileStore getFileStore(Path path) throws IOException
Возвращает FileStore, представляющий файловое хранилище, где находится файл. Этот метод работает точно так же, как и метод Files.getFileStore(java.nio.file.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(java.nio.file.Path, java.lang.Class<V>, java.nio.file.LinkOption...).
Type Parameters:
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[]).
Type Parameters:
A - Тип BasicFileAttributes
Parameters:
path - путь к файлу
type - требуемый тип атрибутов файла для чтения
options - параметры, указывающие, как обрабатывать символические ссылки
Returns:
атрибуты файла
Throws:
UnsupportedOperationException - если атрибуты заданного типа не поддерживаются
IOException - если произошла ошибка ввода-вывода

readAttributes

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

setAttribute

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

exists

public boolean exists(Path path, LinkOption... options)
Проверяет, существует ли файл. Этот метод работает точно так же, как и метод Files.exists(Path, LinkOption...).
Implementation Requirements:
Реализация по умолчанию этого метода вызывает метод checkAccess(Path, AccessMode...), когда выполняются символические ссылки. Если параметр NOFOLLOW_LINKS присутствует, то символические ссылки не следуют, и вызывается метод readAttributes(Path, Class, LinkOption...), чтобы определить, существует ли файл.
Parameters:
path - путь к файлу для проверки
options - параметры, указывающие, как обрабатывать символические ссылки
Returns:
true, если файл существует; false, если файл не существует или его существование не может быть определено.
Since:
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 присутствует, символические ссылки не следуют.

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

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

© 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/spi/FileSystemProvider.html

Spec-Zone.ru

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