Класс 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 |
Задаёт значение атрибута файла. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли какой-либо другой объект этому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии. Финализация устарела и будет удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного интервала реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного интервала реального времени. |
Подробное описание конструкторов
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 в значительной степени зависит от провайдера. Для провайдера по умолчанию компонент пути URI равен "/", а компоненты authority, query и fragment не определены (неопределённые компоненты представлены значением 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 имеет непустой компонент пути, а компоненты query и fragment не определены. Полученный 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.