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)方法实现进一步简化,具体参见该方法的描述。

     

    • 方法详细资料

      • 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.