Module java.base
Package java.nio.file

Class FileStore

java.lang.Object
java.nio.file.FileStore

public abstract class FileStore extends Object
存储文件。 FileStore 表示存储池、设备、分区、卷、具体文件系统或其他实现特定的文件存储方式。 通过调用 getFileStore 方法获取存储文件的 FileStore,或者通过调用 getFileStores 方法枚举所有文件存储。

除了此类定义的方法之外,文件存储可能支持一个或多个提供一组文件存储属性的只读或可更新视图的 FileStoreAttributeView 类。

自版本:
1.7
  • Constructor Details

    • FileStore

      protected FileStore()
      初始化此类的新实例。
  • Method Details

    • name

      public abstract String name()
      返回此文件存储的名称。名称的格式高度特定于实现。通常是存储池或卷的名称。

      此方法返回的字符串可能与 toString 方法返回的字符串不同。

      返回:
      此文件存储的名称
    • type

      public abstract String type()
      返回此文件存储的类型。此方法返回的字符串格式高度特定于实现。它可能指示使用的格式,或者文件存储是本地的还是远程的。
      返回:
      表示此文件存储类型的字符串
    • isReadOnly

      public abstract boolean isReadOnly()
      告知此文件存储是否为只读。如果文件存储不支持写操作或对文件的其他更改,则文件存储为只读。任何尝试创建文件、打开现有文件进行写入等操作都会导致抛出 IOException
      返回:
      如果此文件存储为只读,则返回 true
    • getTotalSpace

      public abstract long getTotalSpace() throws IOException
      返回文件存储的大小(以字节为单位)。如果文件存储中的总字节数大于 Long.MAX_VALUE,则将返回 Long.MAX_VALUE
      返回:
      文件存储的大小,以字节为单位
      抛出:
      IOException - 如果发生I/O错误
    • getUsableSpace

      public abstract long getUsableSpace() throws IOException
      返回Java虚拟机在文件存储上可用的字节数。如果可用字节数大于 Long.MAX_VALUE,则将返回 Long.MAX_VALUE

      返回的可用字节数是一个提示,但不能保证可以使用大部分或任何这些字节。在获取空间属性后,可用字节数的数量最有可能是准确的。任何外部I/O操作(包括在此Java虚拟机之外的系统上进行的操作)都可能使其不准确。

      返回:
      可用字节数
      抛出:
      IOException - 如果发生I/O错误
    • getUnallocatedSpace

      public abstract long getUnallocatedSpace() throws IOException
      返回文件存储中未分配的字节数。如果未分配的字节数大于 Long.MAX_VALUE,则将返回 Long.MAX_VALUE

      返回的未分配字节数是一个提示,但不能保证可以使用大部分或任何这些字节。在获取空间属性后,未分配字节数的数量最有可能是准确的。任何外部I/O操作(包括在此虚拟机之外的系统上进行的操作)都可能使其不准确。

      返回:
      未分配字节数
      抛出:
      IOException - 如果发生I/O错误
    • getBlockSize

      public long getBlockSize() throws IOException
      返回文件存储中每个块的字节数。

      文件存储通常组织为称为的离散字节序列。块是文件存储的最小存储单元。每个读取和写入操作都是在块的倍数上执行的。

      实现要求:
      此类中的实现会抛出 UnsupportedOperationException
      返回:
      表示此文件存储块大小的正值,以字节为单位
      抛出:
      IOException - 如果发生I/O错误
      UnsupportedOperationException - 如果不支持该操作
      自版本:
      10
    • supportsFileAttributeView

      public abstract boolean supportsFileAttributeView(Class<? extends FileAttributeView> type)
      告知此文件存储是否支持给定文件属性视图标识的文件属性。

      调用此方法以测试文件存储是否支持 BasicFileAttributeView 将始终返回 true。在默认提供程序的情况下,当文件存储不是本地存储设备时,此方法无法保证在不支持的情况下给出正确结果。原因是特定于实现的,因此未指定。

      参数:
      type - 文件属性视图类型
      返回:
      如果支持文件属性视图,则返回 true
    • supportsFileAttributeView

      public abstract boolean supportsFileAttributeView(String name)
      告知此文件存储是否支持给定文件属性视图标识的文件属性。

      调用此方法以测试文件存储是否支持由名称 "basic" 标识的 BasicFileAttributeView 将始终返回 true。在默认提供程序的情况下,当文件存储不是本地存储设备时,此方法无法保证在不支持的情况下给出正确结果。原因是特定于实现的,因此未指定。

      参数:
      name - 文件属性视图的 name
      返回:
      如果支持文件属性视图,则返回 true
    • getFileStoreAttributeView

      public abstract <V extends FileStoreAttributeView> V getFileStoreAttributeView(Class<V> type)
      返回给定类型的 FileStoreAttributeView

      此方法旨在用于文件存储属性视图定义类型安全方法以读取或更新文件存储属性。 type 参数是所需属性视图的类型,如果支持,则该方法返回该类型的实例。

      类型参数:
      V - FileStoreAttributeView 类型
      参数:
      type - 与属性视图对应的 Class 对象
      返回:
      指定类型的文件存储属性视图,如果属性视图不可用,则返回 null
    • getAttribute

      public abstract Object getAttribute(String attribute) throws IOException
      读取文件存储属性的值。

      attribute 参数标识要读取的属性,格式为:

      view-name:attribute-name
      其中字符 ':' 代表它本身。

      view-name 是标识一组文件属性的 AttributeViewnameattribute-name 是属性的名称。

      使用示例: 假设我们想知道是否启用了ZFS压缩(假设支持 "zfs" 视图):

          boolean compression = (Boolean)fs.getAttribute("zfs:compression");
      
      参数:
      attribute - 要读取的属性
      返回:
      属性值;对于某些属性,null 可能有效
      抛出:
      UnsupportedOperationException - 如果属性视图不可用或不支持读取属性
      IOException - 如果发生I/O错误