使用儲存空間

Adobe AIR 2 以及更新的版本

在 AIR 2 中,當大量儲存體磁碟區掛接或卸下時,您會察覺到。StorageVolumeInfo 類別會定義一個 Singleton storageVolumeInfo 物件。掛接儲存體磁碟區後, StorageVolumeInfo.storageVolumeInfo 物件會傳送一個 storageVolumeMount 事件。然後在卸下之後,就會傳送一個 storageVolumeUnmount 事件。StorageVolumeChangeEvent 類別會定義這些事件。

備註: 在較新的 Linux 版本上,StorageVolumeInfo 物件只會針對實體裝置及在特定位置掛接的網路磁碟機傳送 storageVolumeMount storageVolumeUnmount 事件。

StorageVolumeChangeEvent 類別的 storageVolume 屬性是一個 StorageVolume 物件。StorageVolume 類別會定義儲存體磁碟區的基本屬性:

  • drive — Windows 上的磁碟機代號 (在其他作業系統上是 null )

  • fileSystemType — 儲存體磁碟區上的檔案系統類型 (例如 "FAT"、"NTFS"、"HFS" 或 "UFS")

  • isRemoveable — 磁碟區是否可卸除 ( true ) 或 ( false )

  • isWritable — 磁碟區是否可寫入 ( true ) 或 ( false )

  • name — 磁碟區的名稱

  • rootDirectory — 與磁碟區根目錄相對應的檔案物件

StorageVolumeChangeEvent 類別也包括 rootDirectory 屬性。 rootDirectory 屬性是參照已掛接或卸下之儲存體磁碟區根目錄的 File 物件。

針對卸下的磁碟區,並未定義 StorageVolumeChangeEvent 物件的 storageVolume 屬性 ( null )。不過您可以存取事件的 rootDirectory 屬性。

以下程式碼會在儲存體磁碟區掛接後,輸出它的名稱以及檔案路徑:

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

以下程式碼會在儲存體磁碟區卸下後,輸出它的檔案路徑:

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

StorageVolumeInfo.storageVolumeInfo 物件包含 getStorageVolumes() 方法。這個方法會根據目前掛接的儲存體磁碟機,傳回 StorageVolume 物件的向量。以下程式碼顯示如何列示所有掛接之儲存體磁碟區的名稱和根目錄:

var volumes:Vector.<StorageVolume> = new Vector.<StorageVolume>; 
volumes = StorageVolumeInfo.storageVolumeInfo.getStorageVolumes(); 
for (var i:int = 0; i < volumes.length; i++) 
{ 
    trace(volumes[i].name, volumes[i].rootDirectory.nativePath); 
}
備註: 在較新的 Linux 版本中, getStorageVolumes() 方法會傳回與特定位置掛接之實體裝置和網路磁碟機對應的物件。

File.getRootDirectories() 方法會列示根目錄 (請參閱 指向檔案系統根目錄 )。不過,StorageVolume 物件 (由 StorageVolumeInfo.getStorageVolumes() 方法列舉) 會提供儲存體磁碟區的詳細資訊。

您可以使用 StorageVolume 物件的 rootDirectory 屬性的 spaceAvailable 屬性來取得儲存體磁碟區的可用空間。(請參閱 判斷磁碟的可用空間 )。