FileStore
表示存储池、设备、分区、卷、具体文件系统或其他实现特定的文件存储方式。 通过调用 getFileStore
方法获取存储文件的 FileStore
,或者通过调用 getFileStores
方法枚举所有文件存储。
除了此类定义的方法之外,文件存储可能支持一个或多个提供一组文件存储属性的只读或可更新视图的 FileStoreAttributeView
类。
- 自版本:
- 1.7
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionabstract Object
getAttribute
(String attribute) 读取文件存储属性的值。long
返回此文件存储中每个块的字节数。abstract <V extends FileStoreAttributeView>
VgetFileStoreAttributeView
(Class<V> type) 返回给定类型的FileStoreAttributeView
。abstract long
返回文件存储的大小(以字节为单位)。abstract long
返回文件存储中未分配的字节数。abstract long
返回文件存储上对此Java虚拟机可用的字节数。abstract boolean
告知此文件存储是否为只读。abstract String
name()
返回此文件存储的名称。abstract boolean
supportsFileAttributeView
(Class<? extends FileAttributeView> type) 告知此文件存储是否支持给定文件属性视图标识的文件属性。abstract boolean
告知此文件存储是否支持给定文件属性视图标识的文件属性。abstract String
type()
返回此文件存储的类型。
-
Constructor Details
-
FileStore
protected FileStore()初始化此类的新实例。
-
-
Method Details
-
name
返回此文件存储的名称。名称的格式高度特定于实现。通常是存储池或卷的名称。此方法返回的字符串可能与
toString
方法返回的字符串不同。- 返回:
- 此文件存储的名称
-
type
返回此文件存储的类型。此方法返回的字符串格式高度特定于实现。它可能指示使用的格式,或者文件存储是本地的还是远程的。- 返回:
- 表示此文件存储类型的字符串
-
isReadOnly
public abstract boolean isReadOnly()告知此文件存储是否为只读。如果文件存储不支持写操作或对文件的其他更改,则文件存储为只读。任何尝试创建文件、打开现有文件进行写入等操作都会导致抛出IOException
。- 返回:
-
如果此文件存储为只读,则返回
true
-
getTotalSpace
返回文件存储的大小(以字节为单位)。如果文件存储中的总字节数大于Long.MAX_VALUE
,则将返回Long.MAX_VALUE
。- 返回:
- 文件存储的大小,以字节为单位
- 抛出:
-
IOException
- 如果发生I/O错误
-
getUsableSpace
返回Java虚拟机在文件存储上可用的字节数。如果可用字节数大于Long.MAX_VALUE
,则将返回Long.MAX_VALUE
。返回的可用字节数是一个提示,但不能保证可以使用大部分或任何这些字节。在获取空间属性后,可用字节数的数量最有可能是准确的。任何外部I/O操作(包括在此Java虚拟机之外的系统上进行的操作)都可能使其不准确。
- 返回:
- 可用字节数
- 抛出:
-
IOException
- 如果发生I/O错误
-
getUnallocatedSpace
返回文件存储中未分配的字节数。如果未分配的字节数大于Long.MAX_VALUE
,则将返回Long.MAX_VALUE
。返回的未分配字节数是一个提示,但不能保证可以使用大部分或任何这些字节。在获取空间属性后,未分配字节数的数量最有可能是准确的。任何外部I/O操作(包括在此虚拟机之外的系统上进行的操作)都可能使其不准确。
- 返回:
- 未分配字节数
- 抛出:
-
IOException
- 如果发生I/O错误
-
getBlockSize
返回文件存储中每个块的字节数。文件存储通常组织为称为块的离散字节序列。块是文件存储的最小存储单元。每个读取和写入操作都是在块的倍数上执行的。
- 实现要求:
-
此类中的实现会抛出
UnsupportedOperationException
。 - 返回:
- 表示此文件存储块大小的正值,以字节为单位
- 抛出:
-
IOException
- 如果发生I/O错误 -
UnsupportedOperationException
- 如果不支持该操作 - 自版本:
- 10
-
supportsFileAttributeView
告知此文件存储是否支持给定文件属性视图标识的文件属性。调用此方法以测试文件存储是否支持
BasicFileAttributeView
将始终返回true
。在默认提供程序的情况下,当文件存储不是本地存储设备时,此方法无法保证在不支持的情况下给出正确结果。原因是特定于实现的,因此未指定。- 参数:
-
type
- 文件属性视图类型 - 返回:
-
如果支持文件属性视图,则返回
true
-
supportsFileAttributeView
告知此文件存储是否支持给定文件属性视图标识的文件属性。调用此方法以测试文件存储是否支持由名称 "
basic
" 标识的BasicFileAttributeView
将始终返回true
。在默认提供程序的情况下,当文件存储不是本地存储设备时,此方法无法保证在不支持的情况下给出正确结果。原因是特定于实现的,因此未指定。- 参数:
-
name
- 文件属性视图的name
- 返回:
-
如果支持文件属性视图,则返回
true
-
getFileStoreAttributeView
返回给定类型的FileStoreAttributeView
。此方法旨在用于文件存储属性视图定义类型安全方法以读取或更新文件存储属性。
type
参数是所需属性视图的类型,如果支持,则该方法返回该类型的实例。- 类型参数:
-
V
-FileStoreAttributeView
类型 - 参数:
-
type
- 与属性视图对应的Class
对象 - 返回:
-
指定类型的文件存储属性视图,如果属性视图不可用,则返回
null
-
getAttribute
读取文件存储属性的值。attribute
参数标识要读取的属性,格式为:view-name:attribute-name
其中字符':'
代表它本身。view-name 是标识一组文件属性的
AttributeView
的name
。 attribute-name 是属性的名称。使用示例: 假设我们想知道是否启用了ZFS压缩(假设支持 "zfs" 视图):
boolean compression = (Boolean)fs.getAttribute("zfs:compression");
- 参数:
-
attribute
- 要读取的属性 - 返回:
-
属性值;对于某些属性,
null
可能有效 - 抛出:
-
UnsupportedOperationException
- 如果属性视图不可用或不支持读取属性 -
IOException
- 如果发生I/O错误
-