使用儲存空間

Adobe AIR 2 以及更新的版本

在 AIR 2 中,當大量儲存體磁碟區掛接或卸下時,您會察覺到。StorageVolumeInfo 類別會定義一個 Singleton 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— 與磁碟區根目錄相對應的檔案物件

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 屬性來取得儲存體磁碟區的可用空間。(請參閱判斷磁碟的可用空間)。

如需電視版 AIR 裝置的儲存磁碟的詳細資訊,請參閱 電視版 AIR 應用程式的目錄檢視