- java.lang.Object
-
- java.nio.file.spi.FileSystemProvider
-
public abstract class FileSystemProviderextends Object
文件系统的服务提供者类。Files
类定义的方法通常会委托给此类的实例。文件系统提供程序是此类的具体实现,它实现此类定义的抽象方法。 提供者由
URI
scheme
标识 。 默认提供程序由URI方案“file”标识。 它创建了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
方法时创建文件系统,则它是提供程序相关的。 对于默认提供程序,将在初始化提供程序时创建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>
VgetFileAttributeView(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
以遍历目录中的条目。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, 类<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, 类<V> type, LinkOption... options)
返回给定类型的文件属性视图。 此方法完全按照Files.getFileAttributeView(java.nio.file.Path, java.lang.Class<V>, java.nio.file.LinkOption...)
方法指定的方式工作。- 参数类型
-
V
-FileAttributeView
类型 - 参数
-
path
- 文件的路径 -
type
- 对应于文件属性视图的类
对象 -
options
- 指示如何处理符号链接的选项 - 结果
- 指定类型的文件属性视图,如果属性视图类型不可用,
null
-
readAttributes
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
方法以检查对文件的读访问权
-
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
方法拒绝对该文件进行写访问。 如果调用此方法来设置安全敏感属性,则可以调用安全管理器来检查其他权限。
-
-