Класс 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
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Инициализирует новый экземпляр этого класса. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract void |
checkAccess |
Проверяет существование файла и, при необходимости, возможность доступа к нему. |
abstract void |
copy |
Копирует файл в целевой файл. |
abstract void |
createDirectory |
Создаёт новый каталог. |
void |
createLink |
Создаёт новую ссылку (запись каталога) на существующий файл. |
void |
createSymbolicLink |
Создаёт символическую ссылку на целевой объект. |
abstract void |
delete |
Удаляет файл. |
boolean |
deleteIfExists |
Удаляет файл, если он существует. |
boolean |
exists |
Проверяет, существует ли файл. |
abstract <V extends FileAttributeView> |
getFileAttributeView |
Возвращает представление атрибутов файла указанного типа. |
abstract FileStore |
getFileStore |
Возвращает FileStore, представляющее хранилище файлов, в котором находится файл. |
abstract FileSystem |
getFileSystem |
Возвращает существующую FileSystem, созданную этим поставщиком. |
abstract Path |
getPath |
Возвращает объект Path, преобразуя заданный URI. |
abstract String |
getScheme() |
Возвращает схему URI, идентифицирующую этот поставщик. |
static List |
installedProviders() |
Возвращает список установленных поставщиков файловых систем. |
abstract boolean |
isHidden |
Сообщает, считается ли файл скрытым. |
abstract boolean |
isSameFile |
Проверяет, указывают ли два пути на один и тот же файл. |
abstract void |
move |
Перемещает файл в целевой файл или переименовывает его. |
AsynchronousFileChannel |
newAsynchronousFileChannel |
Открывает или создаёт файл для чтения и/или записи, возвращая асинхронный файловый канал для доступа к файлу. |
abstract SeekableByteChannel |
newByteChannel |
Открывает или создаёт файл, возвращая канал байтов с произвольным доступом для доступа к файлу. |
abstract DirectoryStream |
newDirectoryStream |
Открывает каталог и возвращает DirectoryStream для перебора его записей. |
FileChannel |
newFileChannel |
Открывает или создаёт файл для чтения и/или записи, возвращая файловый канал для доступа к файлу. |
abstract FileSystem |
newFileSystem |
Создаёт новый объект FileSystem, идентифицируемый URI. |
FileSystem |
newFileSystem |
Создаёт новый FileSystem для доступа к содержимому файла в виде файловой системы. |
InputStream |
newInputStream |
Открывает файл и возвращает входной поток для чтения из него. |
OutputStream |
newOutputStream |
Открывает или создаёт файл и возвращает выходной поток, который можно использовать для записи байтов в файл. |
abstract <A extends BasicFileAttributes> |
readAttributes |
Считывает атрибуты файла одной операцией. |
abstract Map |
readAttributes |
Считывает набор атрибутов файла одной операцией. |
<A extends BasicFileAttributes> |
readAttributesIfExists |
Считывает атрибуты файла одной операцией, если он существует. |
Path |
readSymbolicLink |
Читает цель символической ссылки. |
abstract void |
setAttribute |
Задаёт значение атрибута файла. |
Подробное описание конструкторов
FileSystemProvider
protected FileSystemProvider()
Во время создания провайдер может безопасно обращаться к файлам, связанным с провайдером по умолчанию, но необходимо соблюдать осторожность, чтобы избежать циклической загрузки других установленных провайдеров. Если обнаружена циклическая загрузка установленных провайдеров, возникает ошибка, вид которой не определен.
Подробное описание методов
installedProviders
public static List<FileSystemProvider> installedProviders()
Первый вызов этого метода приводит к инициализации провайдера по умолчанию (если он еще не инициализирован) и загружает все остальные установленные провайдеры, как описано в классе FileSystems.
- Возвращает:
- Немодифицируемый список установленных провайдеров файловых систем. Список содержит как минимум один элемент — провайдер файловой системы по умолчанию
- Вызывает:
-
ServiceConfigurationError— При возникновении ошибки во время загрузки поставщика службы
getScheme
public abstract String getScheme()
- Возвращает:
- Схему 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
© 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