- java.lang.Object
-
- java.nio.file.spi.FileSystemProvider
-
public abstract class FileSystemProvider extends Object
文件系统的服务提供者类。Files
类定义的方法通常会委托给该类的一个实例。文件系统提供程序是实现由该类定义的抽象方法的该类的具体实现。 提供者由
URI
识别scheme
。 默认提供程序由URI方案“文件”标识。 它创建了可以访问Java虚拟机可访问的文件系统的FileSystem
。FileSystems
类定义文件系统提供程序的位置和加载方式。 默认提供程序通常是系统默认提供程序,但如果系统属性java.nio.file.spi.DefaultFileSystemProvider
为java.nio.file.spi.DefaultFileSystemProvider
则可能会被覆盖。 在这种情况下,提供程序具有一个参数构造函数,其形式参数类型为FileSystemProvider
。 所有其他提供程序都有一个零参数构造函数来初始化提供程序。提供商是一个或多个
FileSystem
实例的工厂。 每个文件系统由URI
标识,其URI的方案与提供商的scheme
相匹配。 例如,默认文件系统由URI"file:///"
。 例如,基于存储器的文件系统可以由诸如"memory:///?name=logfs"
的URI来标识。 可以使用newFileSystem
方法来创建文件系统,并且可以使用getFileSystem
方法来获取对由提供者创建的现有文件系统的引用。 如果提供商是单个文件系统的工厂,那么如果在提供程序初始化时创建文件系统,或稍后在调用newFileSystem
方法时,则依赖于提供程序。 在默认提供程序的情况下,FileSystem
是在提供程序初始化时创建的。此类中的所有方法都可以安全地被多个并发线程使用。
- 从以下版本开始:
- 1.7
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protected
FileSystemProvider()
初始化此类的新实例。
-
方法摘要
所有方法 静态方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 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>
VgetFileAttributeView(Path path, Class<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
以遍历目录中的条目。FileChannel
newFileChannel(Path path, Set<? extends OpenOption> options, FileAttribute<?>... attrs)
打开或创建用于读取和/或写入的文件,返回文件通道以访问该文件。abstract FileSystem
newFileSystem(URI uri, Map<String,?> env)
构造由URI标识的新的FileSystem
对象。FileSystem
newFileSystem(Path path, Map<String,?> env)
构造新的FileSystem
以访问文件的内容作为文件系统。InputStream
newInputStream(Path path, OpenOption... options)
打开一个文件,返回输入流以从文件中读取。OutputStream
newOutputStream(Path path, OpenOption... options)
打开或创建文件,返回可用于向文件写入字节的输出流。abstract <A extends BasicFileAttributes>
AreadAttributes(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)
设置文件属性的值。
-
-
-
构造方法详细信息
-
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
构造由URI标识的新的FileSystem
对象。 该方法由FileSystems.newFileSystem(URI,Map)
方法调用以打开由URI标识的新文件系统。uri
参数是一个绝对的分层URI,其方案与此提供程序支持的方案相等(不考虑情况)。 URI的确切形式依赖于高度依赖于提供商。env
参数是配置文件系统的提供程序特定属性的映射。如果文件系统已经存在,则此方法将抛出
FileSystemAlreadyExistsException
,因为它以前是通过调用此方法创建的。 一旦文件系统是closed
,如果提供程序允许使用与之前创建的文件系统相同的URI创建新文件系统,则依赖于提供程序。- 参数
-
uri
- URI参考 -
env
- 配置文件系统的提供程序特定属性的映射; 可能是空的 - 结果
- 一个新的文件系统
- 异常
-
IllegalArgumentException
- 如果uri
参数的前提条件未满足,或env
参数不包含提供程序所需的属性,或属性值无效 -
IOException
- 创建文件系统时出现I / O错误 -
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)
通过转换给定的URI
返回一个Path
对象。 所产生的Path
与已经存在或自动构建的FileSystem
相关联。URI的确切形式是文件系统提供者依赖。 在默认提供程序的情况下,URI方案为
"file"
,给定的URI具有非空路径组件,未定义的查询和片段组件。 由此产生的Path
与默认值default
FileSystem
相关联。如果安装了一个安全管理器,那么提供者实现可能需要检查许可。 在
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
- 如果发生I / O错误 -
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
- 如果发生I / O错误 -
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
- 如果发生I / O错误 -
SecurityException
- 在默认提供程序和安全管理器的情况下,将调用checkWrite
方法来检查对该文件的写入访问。 如果使用DELETE_ON_CLOSE
选项打开文件,则调用checkDelete
方法来检查删除访问。
-
newFileChannel
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)
方法来检查写访问
-
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
- 如果发生I / O错误 -
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
- 如果发生I / O错误 -
SecurityException
- 如果是默认提供程序,并安装了安全管理器,则会调用checkRead
方法来检查该文件是否被读取访问路径。 如果打开文件进行写入,则调用checkWrite
方法来检查对路径的写入访问。 如果使用DELETE_ON_CLOSE
选项打开文件,则调用checkDelete
方法来检查删除访问。
-
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
- 如果发生I / O错误 -
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
- 如果发生I / O错误或父目录不存在 -
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
- 如果发生I / O错误 -
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
- 如果发生I / O错误 -
SecurityException
- 在默认提供程序和安全管理器的情况下,它将拒绝LinkPermission
("hard")
或其checkWrite
方法拒绝对链接或现有文件的写入访问。
-
delete
public abstract void delete(Path path) throws IOException
删除文件。 该方法的工作原理与Files.delete(java.nio.file.Path)
方法规定的方式相同 。- 参数
-
path
- 要删除的文件的路径 - 异常
-
NoSuchFileException
- 如果文件不存在 (可选的特殊异常) -
DirectoryNotEmptyException
- 如果文件是目录,并且由于目录不为空,否则无法删除 (可选的特定异常) -
IOException
- 如果发生I / O错误 -
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
- 如果发生I / O错误 -
SecurityException
- 如果是默认提供程序,并安装了安全管理器,则会调用SecurityManager.checkDelete(String)
方法来检查对该文件的删除访问
-
readSymbolicLink
public Path readSymbolicLink(Path link) throws IOException
读取符号链接的目标。 此方法的工作原理与Files.readSymbolicLink(java.nio.file.Path)
方法规定的方式相同 。此方法的默认实现将抛出
UnsupportedOperationException
。- 参数
-
link
- 符号链接的路径 - 结果
- 符号链接的目标
- 异常
-
UnsupportedOperationException
- 如果实现不支持符号链接 -
NotLinkException
- 如果目标文件不能被读取,因为该文件不是符号链接 (可选的特殊异常) -
IOException
- 如果发生I / O错误 -
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
- 如果发生I / O错误 -
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
- 如果options数组包含ATOMIC_MOVE
选项,但该文件不能作为原子文件系统操作移动。 -
IOException
- 如果发生I / O错误 -
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
- 如果发生I / O错误 -
SecurityException
- 在默认提供程序和安全管理器的情况下,将调用checkRead
方法来检查对这两个文件的读取访问。
-
isHidden
public abstract boolean isHidden(Path path) throws IOException
- 参数
-
path
- 要测试文件的路径 - 结果
-
true
如果文件被认为是隐藏的 - 异常
-
IOException
- 如果发生I / O错误 -
SecurityException
- 在默认提供程序和安全管理器的情况下,将调用checkRead
方法来检查对该文件的读取访问。
-
getFileStore
public abstract FileStore getFileStore(Path path) throws IOException
返回表示文件所在文件存储区的FileStore
。 此方法的工作原理与Files.getFileStore(java.nio.file.Path)
方法规定的方式相同 。- 参数
-
path
- 文件的路径 - 结果
- 存储文件的文件存储区
- 异常
-
IOException
- 如果发生I / O错误 -
SecurityException
- 在默认提供程序和安全管理器的情况下,将调用checkRead
方法来检查对该文件的读取访问,此外还检查RuntimePermission
("getFileStoreAttributes")
-
checkAccess
public abstract void checkAccess(Path path, AccessMode... modes) throws IOException
检查文件的存在,以及可选的可访问性。这种方法可以由使用
isReadable
,isWritable
和isExecutable
方法来检查的文件的可访问性。该方法检查文件的存在,并且该Java虚拟机具有适当的权限,允许其根据
Access Modes Value Descriptionmodes
参数中指定的所有访问模式访问该文件,如下所示: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 toexecute
the file. The semantics may differ when checking access to a directory. For example, on UNIX systems, checking forEXECUTE
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
在检查执行访问时被调用。
-
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
- 如果发生I / O错误 -
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
- 如果发生I / O错误 -
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
- 如果发生I / O错误 -
SecurityException
- 在默认提供程序的情况下,安装了一个安全管理器,其checkWrite
方法拒绝对该文件的写入访问。 如果调用此方法来设置安全敏感属性,则可以调用安全管理器以检查其他权限。
-
-