模块 java.base

类 FileSystemProvider

java.lang.Object
java.nio.file.spi.FileSystemProvider

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 标识。 newFileSystem 方法可用于创建文件系统,getFileSystem 方法可用于获取对提供程序创建的现有文件系统的引用。如果提供程序是单个文件系统的工厂,那么如果文件系统是在初始化提供程序时创建的,或者稍后在调用 newFileSystem 方法时创建的,则它依赖于提供程序。对于默认提供程序,FileSystem 是在初始化提供程序时创建的。

此类中的所有方法都可以安全地供多个并发线程使用。

自从:
1.7
  • 构造方法详细信息

    • 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

      此方法返回对通过调用 newFileSystem(URI,Map) 方法创建的 FileSystem 的引用。此方法不返回使用 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 错误
      FileAlreadyExistsException - 如果该名称的文件已经存在并且指定了 CREATE_NEW 选项(可选的特定例外)
      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 - 如果此提供程序不支持创建文件通道,或者指定了不支持的打开选项或文件属性
      FileAlreadyExistsException - 如果该名称的文件已经存在并且指定了 CREATE_NEW 选项并且正在打开文件进行写入(可选的特定例外)
      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 - 如果此提供程序不支持创建异步文件通道,或者指定了不支持的打开选项或文件属性
      FileAlreadyExistsException - 如果该名称的文件已经存在并且指定了 CREATE_NEW 选项并且正在打开文件进行写入(可选的特定例外)
      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 - 如果选项数组包含 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
      告知文件是否被视为 hidden 。此方法的工作方式与 Files.isHidden(java.nio.file.Path) 方法指定的方式完全相同。

      此方法由 isHidden 方法调用。

      参数:
      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 虚拟机是否具有适当的权限,允许它根据 modes 参数中指定的所有访问模式访问该文件,如下所示:

      访问模式
      Value Description
      READ 检查文件是否存在以及 Java 虚拟机是否有权读取该文件。
      WRITE 检查文件是否存在以及 Java 虚拟机是否有权写入文件,
      EXECUTE 检查该文件是否存在以及 Java 虚拟机是否具有execute 该文件的权限。检查对目录的访问时,语义可能不同。例如,在 UNIX 系统上,检查 EXECUTE 访问权限检查 Java 虚拟机是否有权搜索目录以访问文件或子目录。

      如果 modes 参数的长度为零,则检查文件是否存在。

      如果此对象引用的文件是符号链接,则此方法遵循符号链接。根据实现的不同,此方法可能需要读取文件权限、访问控制列表或其他文件属性,以检查对文件的有效访问。要确定对文件的有效访问可能需要访问多个属性,因此在某些实现中,此方法对于其他文件系统操作可能不是原子的。

      参数:
      path - 要检查的文件的路径
      modes - 要检查的访问模式;可能有零个元素
      抛出:
      UnsupportedOperationException - 需要一个实现来支持检查 READWRITEEXECUTE 访问。指定此异常是为了允许在未来的版本中扩展 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 - 指示如何处理符号链接的选项
      返回:
      返回的属性映射;可能是空的。map的键是属性名称,它的值是属性值
      抛出:
      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 方法拒绝对文件的写访问。如果调用此方法来设置安全敏感属性,则可能会调用安全管理器来检查其他权限。
    • exists

      public boolean exists(Path  path, LinkOption ... options)
      测试文件是否存在。此方法的工作方式与 Files.exists(Path, LinkOption...) 方法指定的方式完全相同。
      实现要求:
      当遵循符号链接时,此方法的默认实现调用 checkAccess(Path, AccessMode...) 方法。如果存在选项 NOFOLLOW_LINKS ,则不遵循符号链接并调用方法 readAttributes(Path, Class, LinkOption...) 以确定文件是否存在。
      参数:
      path - 要测试的文件的路径
      options - 指示如何处理符号链接的选项
      返回:
      true 如果文件存在; false 如果文件不存在或无法确定其存在。
      抛出:
      SecurityException - 在默认提供程序的情况下,将调用 SecurityManager.checkRead(String) 来检查对文件的读取访问权限。
      自从:
      20
    • readAttributesIfExists

      public <A extends BasicFileAttributes > A readAttributesIfExists(Path  path, Class <A> type, LinkOption ... options) throws IOException
      如果文件存在,则将文件的属性作为批量操作读取。

      type 参数是所需属性的类型,如果支持,此方法将返回该类型的实例。所有实现都支持一组基本的文件属性,因此使用 BasicFileAttributes.classtype 参数调用此方法不会抛出 UnsupportedOperationException

      options 数组可用于指示在文件是符号链接的情况下如何处理符号链接。默认情况下,遵循符号链接并读取链接最终目标的文件属性。如果存在选项 NOFOLLOW_LINKS ,则不遵循符号链接。

      如果所有文件属性都作为相对于其他文件系统操作的原子操作读取,则它是特定于实现的。

      实现要求:
      此方法的默认实现调用 readAttributes(Path, Class, LinkOption...) 方法来读取文件的属性。
      类型参数:
      A - BasicFileAttributes 类型
      参数:
      path - 文件路径
      type - 需要读取的文件属性的Class
      options - 指示如何处理符号链接的选项
      返回:
      文件属性,如果文件不存在则为 null
      抛出:
      UnsupportedOperationException - 如果不支持给定类型的属性
      IOException - 如果发生 I/O 错误
      SecurityException - 在默认提供程序的情况下,安装了安全管理器,调用其 checkRead 方法来检查对文件的读取访问权限。如果调用此方法来读取安全敏感属性,则可能会调用安全管理器来检查其他权限。
      自从:
      20