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