- 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 描述 protectedFileSystemProvider()初始化此类的新实例。
-
方法摘要
所有方法 静态方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 abstract voidcheckAccess(Path path, AccessMode... modes)检查文件的存在,以及可选的可访问性。abstract voidcopy(Path source, Path target, CopyOption... options)将文件复制到目标文件。abstract voidcreateDirectory(Path dir, FileAttribute<?>... attrs)创建一个新的目录。voidcreateLink(Path link, Path existing)为现有文件创建一个新的链接(目录条目)。voidcreateSymbolicLink(Path link, Path target, FileAttribute<?>... attrs)创建一个到目标的符号链接。abstract voiddelete(Path path)删除文件。booleandeleteIfExists(Path path)删除文件(如果存在)。abstract <V extends FileAttributeView>
VgetFileAttributeView(Path path, Class<V> type, LinkOption... options)返回给定类型的文件属性视图。abstract FileStoregetFileStore(Path path)返回表示文件所在文件存储区的FileStore。abstract FileSystemgetFileSystem(URI uri)返回此提供者创建的现有FileSystem。abstract PathgetPath(URI uri)通过转换给定的URI返回一个Path对象。abstract StringgetScheme()返回标识此提供程序的URI方案。static List<FileSystemProvider>installedProviders()返回已安装文件系统提供程序的列表。abstract booleanisHidden(Path path)告知文件是否被 隐藏 。abstract booleanisSameFile(Path path, Path path2)测试两个路径是否找到相同的文件。abstract voidmove(Path source, Path target, CopyOption... options)将文件移动或重命名为目标文件。AsynchronousFileChannelnewAsynchronousFileChannel(Path path, Set<? extends OpenOption> options, ExecutorService executor, FileAttribute<?>... attrs)打开或创建用于读取和/或写入的文件,返回异步文件通道以访问该文件。abstract SeekableByteChannelnewByteChannel(Path path, Set<? extends OpenOption> options, FileAttribute<?>... attrs)打开或创建文件,返回可访问的字节通道以访问该文件。abstract DirectoryStream<Path>newDirectoryStream(Path dir, DirectoryStream.Filter<? super Path> filter)打开一个目录,返回一个DirectoryStream以遍历目录中的条目。FileChannelnewFileChannel(Path path, Set<? extends OpenOption> options, FileAttribute<?>... attrs)打开或创建用于读取和/或写入的文件,返回文件通道以访问该文件。abstract FileSystemnewFileSystem(URI uri, Map<String,?> env)构造由URI标识的新的FileSystem对象。FileSystemnewFileSystem(Path path, Map<String,?> env)构造新的FileSystem以访问文件的内容作为文件系统。InputStreamnewInputStream(Path path, OpenOption... options)打开一个文件,返回输入流以从文件中读取。OutputStreamnewOutputStream(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)读取一组文件属性作为批量操作。PathreadSymbolicLink(Path link)读取符号链接的目标。abstract voidsetAttribute(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与默认值defaultFileSystem相关联。如果安装了一个安全管理器,那么提供者实现可能需要检查许可。 在
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参数中指定的所有访问模式访问该文件,如下所示:READChecks that the file exists and that the Java virtual machine has permission to read the file.WRITEChecks that the file exists and that the Java virtual machine has permission to write to the file,EXECUTEChecks that the file exists and that the Java virtual machine has permission toexecutethe file. The semantics may differ when checking access to a directory. For example, on UNIX systems, checking forEXECUTEaccess 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方法拒绝对该文件的写入访问。 如果调用此方法来设置安全敏感属性,则可以调用安全管理器以检查其他权限。
-
-