类 VirtualFile
- java.lang.Object
-
- com.supermap.data.VirtualFile
-
public class VirtualFile extends Object
虚拟文件操作类。
通过虚拟文件操作类既可以访问“标准”文件系统中的文件,也可以访问兼容S3协议的对象存储、FTP服务器中的文件目录和文件,还可以直接访问zip、tar压缩包中的文件。
虚拟文件操作类具备以下能力:
1. 删除文件和目录
2. 列出目录内容
3. 判断是否是文件
4. 判断是否是目录
5. 判断目录或文件是否存在
6. 创建文件目录关于虚拟文件操作类访问文件或目录的路径书写规则:
虚拟文件操作类支持三种文件路径:
1. “标准”文件路径
- 本地文件系统:Windows系统,D:/users/data/zipfile.zip/subdir/image.tif;Linux系统,/home/data/zipfile.zip/subdir/image.tif。
- FTP服务器:ftp://username:password@127.0.0.1/folder1/folder2/subdir/image.tif
2. GDAL定义的路径
- 兼容S3协议的对象存储:/vsis3/bucketname/folder1/folder2/subdir/image.tif,其中,“/vsis3/”是必须前缀;“bucketname”为桶名。
- FTP服务器:/vsicurl/ftp://username:password@127.0.0.1/folder1/folder2/subdir/image.tif,其中,“/vsicurl/”是必须前缀。
- 直接访问zip、tar压缩包中的文件,无需解压:/vsizip/D:/users/data/zipfile.zip/subdir/image.tif,其中,“/vsizip/”是必须前缀,示例表示直接访问本地 Windows文件系统中“D:/users/data/”路径下“zipfile.zip”压缩文件中“subdir”文件夹下的image.tif文件。
3. SuperMap定义的路径
SuperMap提供了云存储服务连接管理能力(参见
CloudStorageConnectionInfoManager
),管理整个进程的云存储服务连接信息(CloudStorageConnectionInfo
),基于此能力,针对S3对象存储和FTP服务,SuperMap定义了一种文件路径,解决了 GDAL不能同时访问桶名相同的多个对象存储服务的问题。云存储服务连接信息(
CloudStorageConnectionInfo
)管理了访问服务的地址、访问凭证等信息,因此,访问管理中的对象存储或FTP服务中的文件,文件路径可以简化为://云存储服务连接信息的名称/文件夹路径/文件。其中,“//”为必须前缀,下面具体介绍路径的书写规则。- 访问兼容S3协议的对象存储:“/vsis3/bucketname/folder1/folder2/subdir/image.tif”路径按照SuperMap定义可以简写为://云存储服务连接信息的名称/folder1/folder2/subdir/image.tif。
- 访问FTP服务器:“/vsicurl/ftp://username:password@127.0.0.1/folder1/folder2/subdir/image.tif”路径按照SuperMap定义可以简写为://云存储服务连接信息的名称/folder1/folder2/subdir/image.tif
上述SuperMap定义的路径还可以通过
CloudStorageConnectionInfo.setPath(String)
方法实现进一步简化,具体参见该方法的描述。
-
-
方法概要
所有方法 静态方法 具体方法 限定符和类型 方法和说明 static boolean
delete(String path)
删除指定文件。static boolean
exists(String path)
判断指定路径是否存在。static boolean
isDirectory(String path)
判断指定路径是否为目录。static boolean
isFile(String path)
判断指定路径是否为文件。static String[][]
list(String path)
返回指定目录下所有文件,但不会扫描和获取子目录下的文件。static boolean
mkdir(String path)
创建目录。
-
-
-
方法详细资料
-
delete
public static boolean delete(String path)
删除指定文件。- 参数:
path
- 需要删除的文件路径。参见:
VirtualFile
类的描述:关于虚拟文件操作类访问文件或目录的路径书写规则。- 返回:
- 一个布尔值,true表示删除成功;false表示删除失败。
- 抛出:
IllegalArgumentException
- 输入的路径为空。- 从以下版本开始:
- 11.2.0
-
list
public static String[][] list(String path)
返回指定目录下所有文件,但不会扫描和获取子目录下的文件。- 参数:
path
- 指定的目录路径。参见:
VirtualFile
类的描述:关于虚拟文件操作类访问文件或目录的路径书写规则。- 返回:
- 返回2个字符串数组,第一个数组记录扫描得到的文件夹路径,第二个数组记录扫描得到的文件路径。
- 抛出:
IllegalArgumentException
- 输入的路径为空。- 从以下版本开始:
- 11.2.0
-
isFile
public static boolean isFile(String path)
判断指定路径是否为文件。- 参数:
path
- 指定的路径。如果指定路径为 null,则返回false。参见:
VirtualFile
类的描述:关于虚拟文件操作类访问文件或目录的路径书写规则。- 返回:
- 一个布尔值,true表示指定路径为文件;否则为false。
- 抛出:
IllegalArgumentException
- 输入的路径为空。- 从以下版本开始:
- 11.2.0
-
isDirectory
public static boolean isDirectory(String path)
判断指定路径是否为目录。- 参数:
path
- 指定的路径。如果指定路径为 null,则返回false。参见:
VirtualFile
类的描述:关于虚拟文件操作类访问文件或目录的路径书写规则。- 返回:
- 一个布尔值,true表示指定路径为目录;否则为false。
- 抛出:
IllegalArgumentException
- 输入的路径为空。- 从以下版本开始:
- 11.2.0
-
exists
public static boolean exists(String path)
判断指定路径是否存在。- 参数:
path
- 指定的路径。参见:
VirtualFile
类的描述:关于虚拟文件操作类访问文件或目录的路径书写规则。- 返回:
- 一个布尔值,true表示指定路径存在;false表示不存在。
- 抛出:
IllegalArgumentException
- 输入的路径为空。- 从以下版本开始:
- 11.2.0
-
mkdir
public static boolean mkdir(String path)
创建目录。
会自动创建不存在的父目录。
注:暂不支持在FTP服务创建目录。- 参数:
path
- 目录路径。参见:
VirtualFile
类的描述:关于虚拟文件操作类访问文件或目录的路径书写规则。- 返回:
- 一个布尔值,true表示文件夹创建成功;false表示文件夹创建失败。
- 抛出:
IllegalArgumentException
- 输入的路径为空。- 从以下版本开始:
- 11.2.0
-
-
Copyright © 2021–2024 SuperMap. All rights reserved.