使用存储卷

Adobe AIR 2 和更高版本

在 AIR 2 中,安装或卸载大容量存储卷时,您可以进行检测。StorageVolumeInfo 类定义单个 storageVolumeInfo 对象。StorageVolumeInfo.storageVolumeInfo 对象在存储卷安装之后调度 storageVolumeMount 事件。它在某个卷被卸载时调度 storageVolumeUnmount 事件。StorageVolumeChangeEvent 类定义这些事件。

注: 在现今的 Linux 发行版中,StorageVolumeInfo 对象仅对在特定位置装载的物理设备和网络驱动器调度 storageVolumeMountstorageVolumeUnmount 事件。

StorageVolumeChangeEvent 类的 storageVolume 属性是一个 StorageVolume 对象。StorageVolume 类定义存储卷的基本属性:

  • drive — Windows 上的卷驱动器号(在其他操作系统上为 null

  • fileSystemType — 存储卷上的文件系统的类型(如“FAT”、“NTFS”、“HFS”或“UFS”)

  • isRemoveable — 卷是可删除(为 true)还是不可删除(为 false

  • isWritable — 卷可写入 (true) 还是不可写入 (false)

  • name — 卷的名称

  • rootDirectory — 与卷的根目录对应的 File 对象

StorageVolumeChangeEvent 类还包括一个 rootDirectory 属性。rootDirectory 属性是一个引用已装载或已卸载的存储卷的根目录的 File 对象。

对于卸载的卷,未定义 StorageVolumeChangeEvent 对象的 storageVolume 属性 (null)。然而,您可以访问此事件的 rootDirectory 的属性。

以下代码在安装完存储卷之后输出该存储卷的名称和文件路径:

air.StorageVolumeInfo.storageVolumeInfo.addEventListener(air.StorageVolumeChangeEvent.STORAGE_VOLUME_MOUNT, onVolumeMount); 
function onVolumeMount(event) 
{ 
    air.trace(event.storageVolume.name, event.rootDirectory.nativePath); 
}

以下代码在卸载完存储卷之后输出该存储卷的文件路径:

air.StorageVolumeInfo.storageVolumeInfo.addEventListener(air.StorageVolumeChangeEvent.STORAGE_VOLUME_UNMOUNT, onVolumeUnmount); 
function onVolumeUnmount(event) 
{ 
    air.trace(event.rootDirectory.nativePath); 
}

StorageVolumeInfo.storageVolumeInfo 对象包含 getStorageVolumes() 方法。此方法返回与当前安装的存储卷对应的 StorageVolume 对象的矢量。以下代码显示如何列出所有安装的存储卷的名称和根目录:

var volumes = air.StorageVolumeInfo.storageVolumeInfo.getStorageVolumes(); 
for (i = 0; i < volumes.length; i++) 
{ 
    air.trace(volumes[i].name, volumes[i].rootDirectory.nativePath); 
}
注: 在现今的 Linux 发行版中,getStorageVolumes() 方法返回与在特定位置安装的物理设备和网络驱动器相对应的对象。

File.getRootDirectories() 方法列出根目录(请参阅指向文件系统根目录)。然而,StorageVolume 对象(由 StorageVolumeInfo.getStorageVolumes() 方法枚举)提供有关存储卷的详细信息。

可使用 StorageVolume 对象的 rootDirectory 属性的 spaceAvailable 属性查看存储卷上的可用空间。(请参阅确定卷上的可用空间。)