Класс FileSystemProvider
- java.lang.Object
-
- java.nio.file.spi.FileSystemProvider
public abstract class FileSystemProvider extends Object
Класс-провайдер службы файловой системы. Методы, определённые классом Files, обычно делегируют вызовы экземпляру этого класса.
Провайдер файловой системы — это конкретная реализация этого класса, которая имплементирует абстрактные методы, определённые в этом классе. Провайдер идентифицируется схемой URI URI scheme. Провайдер по умолчанию идентифицируется схемой URI "file". Он создаёт FileSystem, обеспечивающий доступ к файловым системам, доступным виртуальной машине Java. Класс FileSystems определяет, как провайдеры файловых систем находятся и загружаются. Провайдер по умолчанию обычно является системным провайдером, но может быть переопределён, если установлена системная переменная
java.nio.file.spi.DefaultFileSystemProvider. В этом случае провайдер имеет конструктор с одним аргументом, тип формального параметра которого
FileSystemProvider. Все остальные провайдеры имеют конструктор без аргументов, который инициализирует провайдер.
Провайдер является фабрикой для одного или нескольких экземпляров FileSystem. Каждая файловая система идентифицируется URI, где схема URI соответствует схеме URI провайдера scheme. Например, стандартная файловая система идентифицируется URI "file:///". Например, файловая система на основе памяти может быть идентифицирована URI, таким как "memory:///?name=logfs". Метод newFileSystem может использоваться для создания файловой системы, а метод getFileSystem может использоваться для получения ссылки на существующую файловую систему, созданную провайдером. Если провайдер является фабрикой для одной файловой системы, то создание файловой системы при инициализации провайдера или позднее, при вызове метода newFileSystem, зависит от провайдера. В случае провайдера по умолчанию, FileSystem создаётся при инициализации провайдера.
Все методы в этом классе безопасны для использования несколькими параллельными потоками.
- С момента:
- 1.7
Конструкторы
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | FileSystemProvider() | Инициализирует новый экземпляр этого класса. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
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) | Удаляет файл, если он существует. |
abstract <V extends FileAttributeView> | getFileAttributeView(Path path,
Class<V> type,
LinkOption... options) | Возвращает представление атрибутов файла заданного типа. |
abstract FileStore | getFileStore(Path path) | Возвращает |
abstract FileSystem | getFileSystem(URI uri) | Возвращает существующую |
abstract Path | getPath(URI 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) | Открывает каталог, возвращая |
FileChannel | newFileChannel(Path path,
Set<? extends OpenOption> options,
FileAttribute<?>... attrs) | Открывает или создаёт файл для чтения и/или записи, возвращая канал файла для доступа к файлу. |
abstract FileSystem | newFileSystem(URI uri,
Map<String,?> env) | Создаёт новый |
FileSystem | newFileSystem(Path path,
Map<String,?> env) | Создаёт новый |
InputStream | newInputStream(Path path,
OpenOption... options) | Открывает файл, возвращая поток ввода для чтения из файла. |
OutputStream | newOutputStream(Path path,
OpenOption... options) | Открывает или создаёт файл, возвращая поток вывода, который может использоваться для записи байтов в файл. |
abstract <A extends BasicFileAttributes> | readAttributes(Path path,
Class<A> type,
LinkOption... options) | Считывает атрибуты файла как операцию сжатия. |
abstract Map<String,Object> | readAttributes(Path path,
String attributes,
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()
Инициализирует новый экземпляр этого класса.
Во время создания провайдер может безопасно получить доступ к файлам, связанным со стандартным провайдером, но необходимо позаботиться об избегании циклической загрузки других установленных провайдеров. Если обнаружена циклическая загрузка установленных провайдеров, то будет выброшено неопределённое исключение.
- Выбрасывает:
-
SecurityException- Если установлен менеджер безопасности и он запрещаетRuntimePermission("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- Произошла ошибка ввода-вывода при создании файловой системы -
SecurityException- Если установлен менеджер безопасности, и он отклоняет неопределённое разрешение, необходимое реализации поставщика файловой системы -
FileSystemAlreadyExistsException- Если файловая система уже создана
getFileSystem
public abstract FileSystem getFileSystem(URI uri)
Возвращает существующую FileSystem , созданную этим поставщиком.
Этот метод возвращает ссылку на FileSystem , которая была создана путём вызова метода newFileSystem(URI,Map). Файловые системы, созданные методом newFileSystem(Path,Map) не возвращаются этим методом. Файловая система идентифицируется по своему URI. Её точная форма сильно зависит от поставщика. В случае поставщика по умолчанию компонент пути URI — "/" , а компоненты авторизации, запроса и фрагмента не определены (неопределённые компоненты представлены как null).
После того, как файловая система, созданная этим поставщиком, будет closed, зависит от поставщика, вернёт ли этот метод ссылку на закрытую файловую систему или выбросит исключение FileSystemNotFoundException. Если поставщик разрешает создание новой файловой системы с тем же URI, что и файловая система, которую он ранее создал, то этот метод выбросит исключение, если вызван после закрытия файловой системы (и до создания нового экземпляра методом newFileSystem).
Если установлен менеджер безопасности, то реализация поставщика может потребовать проверки разрешения перед возвращением ссылки на существующую файловую систему. В случае файловой системы default проверка разрешений не требуется.
- Параметры:
-
uri- Ссылка на URI - Возвращает:
- Файловая система
- Выбрасывает:
-
IllegalArgumentException- Если предварительные условия для параметраuriне выполнены -
FileSystemNotFoundException- Если файловая система не существует -
SecurityException- Если установлен менеджер безопасности, и он отклоняет неопределённое разрешение.
getPath
public abstract Path getPath(URI uri)
Возвращает объект Path , преобразуя предоставленный URI. Полученный Path связан с FileSystem, которая уже существует или создаётся автоматически.
Точная форма URI зависит от поставщика файловой системы. В случае поставщика по умолчанию схема URI — "file" , а предоставленный URI имеет непустой компонент пути и неопределённые компоненты запроса и фрагмента. Полученный Path связан с FileSystem файловой системой default по умолчанию.
Если установлен менеджер безопасности, реализация поставщика может потребовать проверки разрешения. В случае файловой системы default проверка разрешений не требуется.
- Параметры:
-
uri- URI для преобразования - Возвращает:
- Полученный
Path - Выбрасывает:
-
IllegalArgumentException- Если схема URI не идентифицирует этого поставщика или другие предварительные условия для параметра uri не выполняются -
FileSystemNotFoundException- Файловая система, идентифицированная URI, не существует и не может быть создана автоматически -
SecurityException- Если установлен менеджер безопасности, и он отклоняет неопределённое разрешение.
newFileSystem
public FileSystem newFileSystem(Path path,
Map<String,?> env)
throws IOException Создаёт новую FileSystem для доступа к содержимому файла как к файловой системе.
Этот метод предназначен для специализированных поставщиков псевдофайловых систем, где содержимое одного или нескольких файлов рассматривается как файловая система. Параметр env — это карта свойств, специфичных для поставщика, для настройки файловой системы.
Если этот поставщик не поддерживает создание таких файловых систем или если поставщик не распознаёт тип файла данного файла, он выбрасывает исключение UnsupportedOperationException. По умолчанию этот метод выбрасывает исключение UnsupportedOperationException.
- Параметры:
-
path- Путь к файлу -
env- Карта свойств, специфичных для поставщика, для настройки файловой системы; может быть пустой - Возвращает:
- Новая файловая система
- Выбрасывает:
-
UnsupportedOperationException- Если этот поставщик не поддерживает доступ к содержимому как к файловой системе или не распознаёт тип файла данного файла -
IllegalArgumentException- Если параметрenvне содержит свойств, необходимых поставщику, или значение свойства некорректно -
IOException- Произошла ошибка ввода-вывода -
SecurityException- Если установлен менеджер безопасности, и он отклоняет неопределённое разрешение.
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- если произошла ошибка ввода-вывода -
SecurityException- В случае поставщика по умолчанию и установленного менеджера безопасности вызывается методcheckReadдля проверки доступа на чтение к файлу.
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- если произошла ошибка ввода-вывода -
SecurityException- В случае поставщика по умолчанию и установленного менеджера безопасности вызывается методcheckWriteдля проверки доступа на запись к файлу. МетодcheckDeleteвызывается для проверки доступа на удаление, если файл открыт с параметромDELETE_ON_CLOSE.
newFileChannel
public FileChannel newFileChannel(Path path,
Set<? extends OpenOption> options,
FileAttribute<?>... attrs)
throws IOException Открывает или создаёт файл для чтения и/или записи, возвращая файловый канал для доступа к файлу. Этот метод работает точно так же, как и метод FileChannel.open. Провайдер, не поддерживающий все необходимые функции для создания файлового канала, выбрасывает
UnsupportedOperationException. По умолчанию провайдер должен поддерживать создание файловых каналов. Если не переопределено, реализация по умолчанию выбрасывает UnsupportedOperationException.
- Параметры:
-
path- путь к файлу, который нужно открыть или создать -
options- параметры, определяющие, как открывается файл -
attrs- необязательный список атрибутов файла, которые должны быть установлены атомарно при создании файла - Возвращает:
- новый файловый канал
- Выбрасывает:
-
IllegalArgumentException- Если набор содержит недопустимую комбинацию параметров -
UnsupportedOperationException- Если этот провайдер не поддерживает создание файловых каналов или указан неподдерживаемый параметр открытия или атрибут файла -
IOException- Если произошла ошибка ввода-вывода -
SecurityException- В случае с файловой системой по умолчанию, методSecurityManager.checkRead(String)вызывается для проверки доступа на чтение, если файл открыт для чтения. МетодSecurityManager.checkWrite(String)вызывается для проверки доступа на запись, если файл открыт для записи
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- Если этот провайдер не поддерживает создание асинхронных файловых каналов или указан неподдерживаемый параметр открытия или атрибут файла -
IOException- Если произошла ошибка ввода-вывода -
SecurityException- В случае с файловой системой по умолчанию, методSecurityManager.checkRead(String)вызывается для проверки доступа на чтение, если файл открыт для чтения. МетодSecurityManager.checkWrite(String)вызывается для проверки доступа на запись, если файл открыт для записи
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- если произошла ошибка ввода-вывода -
SecurityException- В случае провайдера по умолчанию и установленного менеджера безопасности, методcheckReadвызывается для проверки доступа на чтение к пути, если файл открыт для чтения. МетодcheckWriteвызывается для проверки доступа на запись к пути, если файл открыт для записи. МетодcheckDeleteвызывается для проверки доступа на удаление, если файл открыт с параметромDELETE_ON_CLOSE.
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- если произошла ошибка ввода-вывода -
SecurityException- В случае провайдера по умолчанию и установленного менеджера безопасности, методcheckReadвызывается для проверки доступа на чтение к директории.
createDirectory
public abstract void createDirectory(Path dir,
FileAttribute<?>... attrs)
throws IOException Создаёт новую директорию. Этот метод работает точно так же, как и метод Files.createDirectory(java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...).
- Параметры:
-
dir- директория для создания -
attrs- необязательный список атрибутов файла, которые должны быть установлены атомарно при создании директории - Выбрасывает:
-
UnsupportedOperationException- если массив содержит атрибут, который нельзя атомарно установить при создании директории -
FileAlreadyExistsException- если директория не может быть создана по другим причинам, так как файл с таким именем уже существует (опциональное специфическое исключение) -
IOException- если произошла ошибка ввода-вывода или родительская директория не существует -
SecurityException- В случае провайдера по умолчанию и установленного менеджера безопасности, методcheckWriteвызывается для проверки доступа на запись к новой директории.
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.
- Параметры:
-
link- путь к символической ссылке, которую нужно создать -
target- целевой объект символической ссылки -
attrs- массив атрибутов, которые должны быть установлены атомарно при создании символической ссылки - Выбрасывает:
-
UnsupportedOperationException- если реализация не поддерживает символические ссылки или массив содержит атрибут, который нельзя атомарно установить при создании символической ссылки -
FileAlreadyExistsException- если файл с таким именем уже существует (опциональное специфическое исключение) -
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае провайдера по умолчанию и установленного менеджера безопасности, он отказываетсяLinkPermission("symbolic")или его методcheckWriteотказывается от доступа на запись к пути символической ссылки.
createLink
public void createLink(Path link,
Path existing)
throws IOException Создаёт новую ссылку (запись в каталоге) для существующего файла. Этот метод работает точно так же, как и метод Files.createLink(java.nio.file.Path, java.nio.file.Path).
Реализация по умолчанию этого метода выбрасывает
UnsupportedOperationException.
- Параметры:
-
link- ссылка (запись в каталоге) для создания -
existing- путь к существующему файлу - Выбрасывает:
-
UnsupportedOperationException- если реализация не поддерживает добавление существующего файла в каталог -
FileAlreadyExistsException- если запись не может быть создана по другим причинам, так как файл с таким именем уже существует (опциональное специфическое исключение) -
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае провайдера по умолчанию и установленного менеджера безопасности, он отказываетсяLinkPermission("hard")или его методcheckWriteотказывается от доступа на запись к ссылке или существующему файлу.
delete
public abstract void delete(Path path)
throws IOException Удаляет файл. Этот метод работает точно так же, как и метод Files.delete(java.nio.file.Path).
- Параметры:
-
path- путь к файлу, который нужно удалить - Исключения:
-
NoSuchFileException- если файл не существует (необязательное специфическое исключение) -
DirectoryNotEmptyException- если файл является каталогом и не может быть удален, потому что каталог не пуст (необязательное специфическое исключение) -
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае с провайдером по умолчанию и установленным менеджером безопасности вызывается методSecurityManager.checkDelete(String)для проверки доступа к удалению файла
deleteIfExists
public boolean deleteIfExists(Path path)
throws IOException Удаляет файл, если он существует. Этот метод работает точно так же, как и метод Files.deleteIfExists(java.nio.file.Path).
По умолчанию этот метод просто вызывает delete(java.nio.file.Path), игнорируя NoSuchFileException при отсутствии файла. Он может быть переопределён по необходимости.
- Параметры:
-
path- путь к файлу, который нужно удалить - Возвращает:
-
trueесли файл был удалён;falseесли файл не может быть удалён, потому что он не существует - Исключения:
-
DirectoryNotEmptyException- если файл является каталогом и не может быть удалён, потому что каталог не пуст (необязательное специфическое исключение) -
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае с провайдером по умолчанию и установленным менеджером безопасности вызывается методSecurityManager.checkDelete(String)для проверки доступа к удалению файла
readSymbolicLink
public Path readSymbolicLink(Path link)
throws IOException Читает целевой объект символической ссылки. Этот метод работает точно так же, как и метод Files.readSymbolicLink(java.nio.file.Path).
По умолчанию этот метод выбрасывает
UnsupportedOperationException.
- Параметры:
-
link- путь к символической ссылке - Возвращает:
- Целевой объект символической ссылки
- Исключения:
-
UnsupportedOperationException- если реализация не поддерживает символические ссылки -
NotLinkException- если целевой объект не может быть прочитан, потому что файл не является символической ссылкой (необязательное специфическое исключение) -
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае с провайдером по умолчанию и установленным менеджером безопасности проверяется, что уFilePermissionпредоставлено действие "readlink" для чтения ссылки.
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- если произошла ошибка ввода-вывода -
SecurityException- В случае с провайдером по умолчанию и установленным менеджером безопасности вызывается методcheckReadдля проверки доступа к чтению исходного файла, методcheckWriteвызывается для проверки доступа к записи в целевой файл. Если копируется символическая ссылка, менеджер безопасности вызывается для проверкиLinkPermission("symbolic").
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- если произошла ошибка ввода-вывода -
SecurityException- В случае с провайдером по умолчанию и установленным менеджером безопасности вызывается методcheckWriteдля проверки доступа к записи в исходный и целевой файлы.
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- если произошла ошибка ввода-вывода -
SecurityException- В случае с провайдером по умолчанию и установленным менеджером безопасности вызывается методcheckReadдля проверки доступа к чтению обоих файлов.
isHidden
public abstract boolean isHidden(Path path)
throws IOException Определяет, является ли файл скрытым. Этот метод работает точно так же, как и метод Files.isHidden(java.nio.file.Path).
Этот метод вызывается методом isHidden.
- Параметры:
-
path- путь к файлу для проверки - Возвращает:
-
trueесли файл считается скрытым - Исключения:
-
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае с провайдером по умолчанию и установленным менеджером безопасности вызывается методcheckReadдля проверки доступа к чтению файла.
getFileStore
public abstract FileStore getFileStore(Path path)
throws IOException Возвращает FileStore, представляющий файловую систему, где расположен файл. Этот метод работает точно так же, как и метод Files.getFileStore(java.nio.file.Path).
- Параметры:
-
path- путь к файлу - Возвращает:
- файловую систему, где хранится файл
- Исключения:
-
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае с провайдером по умолчанию и установленным менеджером безопасности вызывается методcheckReadдля проверки доступа к чтению файла, и дополнительно проверяетсяRuntimePermission("getFileStoreAttributes")
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- если произошла ошибка ввода-вывода -
SecurityException- В случае с поставщиком по умолчанию и установленным менеджером безопасности, вызываетсяcheckReadпри проверке доступа на чтение к файлу или только существования файла,checkWriteвызывается при проверке доступа на запись в файл, иcheckExecвызывается при проверке доступа на выполнение.
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...).
- Тип параметров:
-
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- если произошла ошибка ввода-вывода -
SecurityException- В случае с поставщиком по умолчанию, если установлен менеджер безопасности, его методcheckReadвызывается для проверки доступа на чтение к файлу
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- если произошла ошибка ввода-вывода -
SecurityException- В случае с поставщиком по умолчанию и установленным менеджером безопасности, его методcheckReadзапрещает доступ на чтение к файлу. Если этот метод вызван для чтения атрибутов, чувствительных к безопасности, менеджер безопасности может быть вызван для проверки дополнительных разрешений.
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...).
- Параметры:
-
path- путь к файлу -
attribute- атрибут для установки -
value- значение атрибута -
options- опции, указывающие, как обрабатываются символические ссылки - Исключения:
-
UnsupportedOperationException- если представление атрибутов недоступно -
IllegalArgumentException- если имя атрибута не указано или не распознано, или значение атрибута имеет правильный тип, но неподходящее значение -
ClassCastException- Если значение атрибута не имеет ожидаемого типа или является коллекцией, содержащей элементы, которые не имеют ожидаемого типа -
IOException- если произошла ошибка ввода-вывода -
SecurityException- В случае с поставщиком по умолчанию и установленным менеджером безопасности, его методcheckWriteзапрещает доступ на запись в файл. Если этот метод вызван для установки атрибутов, чувствительных к безопасности, менеджер безопасности может быть вызван для проверки дополнительных разрешений.
© 1993, 2020, 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/11/docs/api/java.base/java/nio/file/spi/FileSystemProvider.html