public abstract class FileSystemProvider extends Object
Files
类定义的方法通常会委托给这个类的一个实例。
文件系统提供程序是实现由该类定义的抽象方法的该类的具体实现。 提供者由URI
scheme
标识 。 默认提供程序由URI方案“文件”标识。 它创建FileSystem
,提供了访问给Java虚拟机访问的文件系统。 FileSystems
类定义了文件系统提供程序的位置和加载方式。 默认提供程序通常是系统默认提供程序,但如果设置了系统属性java.nio.file.spi.DefaultFileSystemProvider
则可能会被覆盖。 在这种情况下,提供程序具有一个参数构造函数,其形式参数类型为FileSystemProvider
。 所有其他提供程序都有一个零参数构造函数来初始化提供程序。
提供者是一个或多个FileSystem
实例的工厂。 每个文件系统由URI
,其URI的方案与提供者的scheme
匹配。 例如,默认文件系统由URI "file:///"
。 例如,基于存储器的文件系统可以由诸如"memory:///?name=logfs"
的URI来"memory:///?name=logfs"
。 newFileSystem
方法可用于创建文件系统,并且可以使用getFileSystem
方法来获得对由提供者创建的现有文件系统的引用。 如果提供商是单个文件系统的工厂,那么如果在提供程序初始化时创建文件系统,或稍后当调用newFileSystem
方法时, newFileSystem
于提供程序。 在默认提供程序的情况下, FileSystem
是在提供程序FileSystem
时创建的。
此类中的所有方法都可以安全地被多个并发线程使用。
Modifier | Constructor and Description |
---|---|
protected |
FileSystemProvider()
初始化此类的新实例。
|
Modifier and Type | Method and Description |
---|---|
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, 类<V> type, LinkOption... options)
返回给定类型的文件属性视图。
|
abstract FileStore |
getFileStore(Path path)
返回表示文件所在文件存储区的 FileStore 。
|
abstract FileSystem |
getFileSystem(URI uri)
返回此提供商创建的现有
FileSystem 。
|
abstract Path |
getPath(URI uri)
通过转换给定的 URI 返回一个Path 对象。
|
abstract String |
getScheme()
返回标识此提供程序的URI方案。
|
static List<FileSystemProvider> |
installedProviders()
返回已安装文件系统提供程序的列表。
|
abstract boolean |
isHidden(Path path)
告知文件是否被
隐藏 。
|
abstract boolean |
isSameFile(Path path, Path path2)
测试两个路径是否找到相同的文件。
|
abstract void |
move(Path source, Path target, CopyOption... options)
将文件移动或重命名为目标文件。
|
AsynchronousFileChannel |
newAsynchronousFileChannel(Path path, Set<? extends OpenOption> options, ExecutorService executor, FileAttribute<?>... attrs)
打开或创建用于读取和/或写入的文件,返回异步文件通道以访问该文件。
|
abstract SeekableByteChannel |
newByteChannel(Path path, Set<? extends OpenOption> options, FileAttribute<?>... attrs)
打开或创建文件,返回可访问的字节通道以访问该文件。
|
abstract DirectoryStream<Path> |
newDirectoryStream(Path dir, DirectoryStream.Filter<? super Path> filter)
打开一个目录,返回一个
DirectoryStream 来迭代
DirectoryStream 中的条目。
|
FileChannel |
newFileChannel(Path path, Set<? extends OpenOption> options, FileAttribute<?>... attrs)
打开或创建用于读取和/或写入的文件,返回文件通道以访问该文件。
|
FileSystem |
newFileSystem(Path path, Map<String,?> env)
构造一个新的
FileSystem 以访问文件的内容作为文件系统。
|
abstract FileSystem |
newFileSystem(URI uri, Map<String,?> env)
构造由URI标识的新的
FileSystem 对象。
|
InputStream |
newInputStream(Path path, OpenOption... options)
打开一个文件,返回输入流以从文件中读取。
|
OutputStream |
newOutputStream(Path path, OpenOption... options)
打开或创建文件,返回可用于向文件写入字节的输出流。
|
abstract <A extends BasicFileAttributes> |
readAttributes(Path path, 类<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)
设置文件属性的值。
|
protected FileSystemProvider()
在施工期间,提供商可以安全地访问与默认提供商相关的文件,但需要注意避免其他已安装提供程序的循环加载。 如果检测到已安装提供程序的循环加载,则会抛出未指定的错误。
SecurityException
- 如果安全管理器已安装,并且拒绝RuntimePermission
("fileSystemProvider")
public static List<FileSystemProvider> installedProviders()
第一次调用此方法会导致默认提供程序被初始化(如果尚未初始化)并加载任何其他已安装的提供程序,如FileSystems
类所述。
ServiceConfigurationError
- 加载服务提供商时发生错误
public abstract String getScheme()
public abstract FileSystem newFileSystem(URI uri, Map<String,?> env) throws IOException
FileSystem
对象。
该方法由FileSystems.newFileSystem(URI,Map)
方法调用,以打开由URI标识的新文件系统。
uri
参数是绝对的分层URI,方案与此提供程序支持的方案相等(不考虑情况)。 URI的确切形式依赖于高度依赖于提供商。 env
参数是配置文件系统的提供者特定属性的映射。
如果文件系统已经存在,则此方法将抛出FileSystemAlreadyExistsException
,因为它以前是通过调用此方法创建的。 一旦文件系统是closed
,如果提供程序允许使用与之前创建的文件系统相同的URI来创建新的文件系统,则依赖于提供者。
uri
- URI参考
env
- 配置文件系统的提供者特定属性映射;
可能是空的
IllegalArgumentException
- 如果不符合
uri
前提条件,或者
env
参数不包含提供者要求的属性,或属性值无效
IOException
- 创建文件系统时发生I / O错误
SecurityException
- 如果安装了一个安全管理器,并且它拒绝文件系统提供程序实现所需的未指定权限
FileSystemAlreadyExistsException
- 如果文件系统已经创建
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
- 如果安装了一个安全管理器,并且拒绝了未指定的权限。
public abstract Path getPath(URI uri)
URI
返回一个Path
对象。
将所得Path
与相关联FileSystem
已经存在或自动构造。
URI的确切形式是文件系统提供者依赖。 在默认提供程序的情况下,URI方案为"file"
,给定的URI具有非空路径组件,未定义的查询和片段组件。 得到的Path
与默认关联default
FileSystem
。
如果安装了一个安全管理器,那么提供者实现可能需要检查许可。 在default
文件系统的情况下,不需要许可检查。
uri
- 要转换的URI
Path
IllegalArgumentException
- 如果URI方案不标识此提供程序或uri参数的其他前提条件不成立
FileSystemNotFoundException
- 由URI
FileSystemNotFoundException
的文件系统不存在,不能自动创建
SecurityException
- 如果安装了一个安全管理器,并且它拒绝了未指定的权限。
public FileSystem newFileSystem(Path path, Map<String,?> env) throws IOException
FileSystem
来访问文件的内容作为文件系统。
该方法适用于将一个或多个文件的内容视为文件系统的伪文件系统的专门提供商。 env
参数是配置文件系统的提供程序特定属性的映射。
如果该提供商不支持创建这样的文件系统,或者如果提供程序无法识别给定文件的文件类型,那么它将抛出UnsupportedOperationException
。 此方法的默认实现方式为UnsupportedOperationException
。
path
- 文件的路径
env
- 配置文件系统的提供者特定属性的映射;
可能是空的
UnsupportedOperationException
- 如果此提供程序不支持作为文件系统访问内容,或者不识别给定文件的文件类型
IllegalArgumentException
- 如果
env
参数不包含提供程序所需的属性,或属性值无效
IOException
- 如果发生I / O错误
SecurityException
- 如果安装了一个安全管理器,并且它拒绝了未指定的权限。
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
- 如果发生I / O错误
SecurityException
- 在默认提供程序和安全管理器的情况下,将调用
checkRead
方法来检查对该文件的读取访问。
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
- 如果发生I / O错误
SecurityException
- 在默认提供程序和安全管理器的情况下,调用checkWrite
方法来检查对该文件的写入访问。
如果使用DELETE_ON_CLOSE
选项打开文件,则调用checkDelete
方法来检查删除访问。
public FileChannel newFileChannel(Path path, Set<? extends OpenOption> options, FileAttribute<?>... attrs) throws IOException
FileChannel.open
方法规定的方式相同。
不支持构建文件通道所需的所有功能的提供程序会抛出UnsupportedOperationException
。
默认提供程序需要支持创建文件通道。
当不覆盖时,默认实现将抛出UnsupportedOperationException
。
path
- 要打开或创建文件的路径
options
- 指定文件打开方式的选项
attrs
- 创建文件时以原子方式设置的文件属性的可选列表
IllegalArgumentException
- 如果集合包含无效的选项组合
UnsupportedOperationException
- 如果此提供程序不支持创建文件通道,或指定不支持的打开选项或文件属性
IOException
- 如果发生I / O错误
SecurityException
- 在默认文件系统的情况下,调用SecurityManager.checkRead(String)
方法以检查文件是否打开以进行读取访问。
如果文件被打开以写入,则调用SecurityManager.checkWrite(String)
方法来检查写访问
public AsynchronousFileChannel newAsynchronousFileChannel(Path path, Set<? extends OpenOption> options, ExecutorService executor, FileAttribute<?>... attrs) throws IOException
AsynchronousFileChannel.open
方法规定的方式相同。
不支持构建异步文件通道所需的所有功能的提供程序会抛出UnsupportedOperationException
。
需要默认提供程序来支持创建异步文件通道。
当不被覆盖时,此方法的默认实现将抛出UnsupportedOperationException
。
path
- 打开或创建文件的路径
options
- 指定文件打开方式的选项
executor
- 将通道与默认线程池相关
executor
的线程池或
null
attrs
- 创建文件时以原子方式设置的文件属性的可选列表
IllegalArgumentException
- 如果集合包含无效的选项组合
UnsupportedOperationException
- 如果此提供程序不支持创建异步文件通道,或指定不受支持的打开选项或文件属性
IOException
- 如果发生I / O错误
SecurityException
- 在默认文件系统的情况下,调用SecurityManager.checkRead(String)
方法以检查文件是否打开以进行读取访问。
如果文件被打开以写入,则调用SecurityManager.checkWrite(String)
方法来检查写访问
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
- 如果发生I / O错误
SecurityException
- 如果是默认提供程序,并且安装了一个安全管理器,则调用checkRead
方法以检查该文件是否被读取访问路径。
如果文件被打开以写入,则调用checkWrite
方法来检查对路径的写入访问。
如果使用DELETE_ON_CLOSE
选项打开文件,则调用checkDelete
方法来检查删除访问。
public abstract DirectoryStream<Path> newDirectoryStream(Path dir, DirectoryStream.Filter<? super Path> filter) throws IOException
DirectoryStream
以遍历DirectoryStream
中的条目。
该方法的工作原理与Files.newDirectoryStream(java.nio.file.Path, java.nio.file.DirectoryStream.Filter)
方法规定的方式相同。
dir
- 目录的路径
filter
- 目录流过滤器
DirectoryStream
对象
NotDirectoryException
- 如果文件无法打开,因为它不是目录
(可选的特殊异常)
IOException
- 如果发生I / O错误
SecurityException
- 在默认提供程序和安全管理器的情况下,调用
checkRead
方法来检查对目录的读取访问。
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
- 如果发生I / O错误或父目录不存在
SecurityException
- 在默认提供程序和安全管理器的情况下,调用
checkWrite
方法来检查对新目录的写入访问。
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
- 如果发生I / O错误
SecurityException
- 在默认提供程序和安全管理器的情况下,它将拒绝LinkPermission
("symbolic")或其checkWrite
方法拒绝对符号链接的路径的写入访问。
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
- 如果发生I / O错误
SecurityException
- 在默认提供程序和安全管理器的情况下,它将拒绝LinkPermission
("hard")或其checkWrite
方法拒绝对链接或现有文件的写入访问。
public abstract void delete(Path path) throws IOException
Files.delete(java.nio.file.Path)
方法规定的方式相同。
path
- 要删除的文件的路径
NoSuchFileException
- 如果文件不存在
(可选特定异常)
DirectoryNotEmptyException
- 如果该文件是一个目录,并且由于目录不为空而无法被删除
(可选的特殊异常)
IOException
- 如果发生I / O错误
SecurityException
- 如果是默认提供程序,并安装了安全管理器,则调用
SecurityManager.checkDelete(String)
方法来检查对该文件的删除访问
public boolean deleteIfExists(Path path) throws IOException
Files.deleteIfExists(java.nio.file.Path)
方法规定的方式相同。
该方法的默认实现只需调用delete(java.nio.file.Path)
忽略该文件不存在时的NoSuchFileException
。 在适当情况下可能会被覆盖。
path
- 要删除的文件的路径
true
如果文件被该方法删除;
false
如果该文件不存在则无法删除
DirectoryNotEmptyException
- 如果该文件是目录,并且由于目录不为空而无法删除该文件
(可选的特定异常)
IOException
- 如果发生I / O错误
SecurityException
- 如果是默认提供程序,并安装了安全管理器,则调用
SecurityManager.checkDelete(String)
方法来检查对该文件的删除访问
public Path readSymbolicLink(Path link) throws IOException
Files.readSymbolicLink(java.nio.file.Path)
方法规定的方式相同。
此方法的默认实现方式为UnsupportedOperationException
。
link
- 到符号链接的路径
UnsupportedOperationException
- 如果实现不支持符号链接
NotLinkException
- 如果目标文件不能被读取,因为该文件不是符号链接
(可选的特殊异常)
IOException
- 如果发生I / O错误
SecurityException
- 在默认提供程序的情况下,安装了一个安全管理器,它检查
FilePermission
已被授予“
readlink
”操作以读取链接。
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
- 如果发生I / O错误
SecurityException
- 在默认提供程序和安全管理器的情况下,调用checkRead
方法来检查对源文件的读取访问,调用checkWrite
以检查对目标文件的写入访问。
如果复制了符号链接,则调用安全管理器以检查LinkPermission
("symbolic")
。
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
- 如果options数组包含
ATOMIC_MOVE
选项,但该文件不能作为原子文件系统操作移动。
IOException
- 如果发生I / O错误
SecurityException
- 在默认提供程序和安全管理器的情况下,调用
checkWrite
方法来检查对源文件和目标文件的写入访问。
public abstract boolean isSameFile(Path path, Path path2) throws IOException
Files.isSameFile(java.nio.file.Path, java.nio.file.Path)
方法规定的方式相同。
path
- 文件的一个路径
path2
- 其他路径
true
如果,并且只有当两个路径找到相同的文件
IOException
- 如果发生I / O错误
SecurityException
- 在默认提供程序和安全管理器的情况下,将调用
checkRead
方法来检查对这两个文件的读取访问。
public abstract boolean isHidden(Path path) throws IOException
path
- 要测试文件的路径
true
如果该文件被认为是隐藏的
IOException
- 如果发生I / O错误
SecurityException
- 如果是默认提供程序,并安装了安全管理器,则调用
checkRead
方法来检查对该文件的读取访问。
public abstract FileStore getFileStore(Path path) throws IOException
FileStore
。
该方法的工作原理与Files.getFileStore(java.nio.file.Path)
方法规定的方式相同。
path
- 文件的路径
IOException
- 如果发生I / O错误
SecurityException
- 在默认提供程序和安全管理器的情况下,调用checkRead
方法来检查对该文件的读取访问,另外它检查RuntimePermission
("getFileStoreAttributes")
public abstract void checkAccess(Path path, AccessMode... modes) throws IOException
这种方法可以由使用isReadable
, isWritable
和isExecutable
方法来检查的文件的可访问性。
该方法检查文件并且该Java虚拟机具有相应的权限,将允许它根据所有的在指定的访问模式访问该文件的存在modes
参数如下:
READ
Checks that the file exists and that the Java virtual machine has permission to read the file. WRITE
Checks that the file exists and that the Java virtual machine has permission to write to the file, EXECUTE
Checks that the file exists and that the Java virtual machine has permission to execute
the file. The semantics may differ when checking access to a directory. For example, on UNIX systems, checking for EXECUTE
access checks that the Java virtual machine has permission to search the directory in order to access file or subdirectories.
如果modes
参数的长度为零,则检查文件的存在。
如果此对象引用的文件是符号链接,则此方法遵循符号链接。 根据实现,此方法可能需要读取文件权限,访问控制列表或其他文件属性,以便检查对文件的有效访问。 要确定对文件的有效访问可能需要访问多个属性,因此在某些实现中,该方法可能不是相对于其他文件系统操作的原子。
path
- 要检查的文件的路径
modes
- 检查的访问模式;
可能有零个元素
UnsupportedOperationException
-的实现,则需要支持检查READ
, WRITE
和EXECUTE
访问。
此异常被指定为允许在将来的版本中扩展Access
枚举。
NoSuchFileException
- 如果文件不存在
(可选特定异常)
AccessDeniedException
- 所请求的访问将被拒绝或无法确定访问,因为Java虚拟机没有足够的权限或其他原因。
(可选具体例外)
IOException
- 如果发生I / O错误
SecurityException
- 在默认提供程序和安全管理器的情况下,
checkRead
在检查对该文件的读取访问或仅存在该文件时调用,
checkWrite
在检查对该文件的写入访问时被调用,
checkExec
在检查执行访问时被调用。
public abstract <V extends FileAttributeView> V getFileAttributeView(Path path, 类<V> type, LinkOption... options)
Files.getFileAttributeView(java.nio.file.Path, java.lang.Class<V>, java.nio.file.LinkOption...)
方法规定的方式相同。
V
-
FileAttributeView
类型
path
- 文件的路径
type
- 对应于文件属性视图的
类
对象
options
- 指示如何处理符号链接的选项
null
如果属性视图类型不可用
public abstract <A extends BasicFileAttributes> A readAttributes(Path path, 类<A> type, LinkOption... options) throws IOException
Files.readAttributes(Path,Class,LinkOption[])
方法规定的方式相同。
A
-
BasicFileAttributes
类型
path
- 文件的路径
type
-在
类
读取所需的文件属性
options
- 表示如何处理符号链接的选项
UnsupportedOperationException
- 如果不支持给定类型的属性
IOException
- 如果发生I / O错误
SecurityException
- 在默认提供程序的情况下,安装一个安全管理器,调用其
checkRead
方法来检查对该文件的读访问
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
- 如果发生I / O错误
SecurityException
- 在默认提供程序和安全管理器的情况下,其checkRead
方法拒绝对该文件的读取访问。
如果调用此方法来读取安全敏感属性,则可能会调用安全管理器来检查其他权限。
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
- 如果发生I / O错误
SecurityException
- 在默认提供程序和安全管理器的情况下,其checkWrite
方法拒绝对该文件的写入访问。
如果调用此方法来设置安全敏感属性,则可以调用安全管理器以检查其他权限。