AIR 2 では、マスストレージボリュームのマウントまたはアンマウントを検出できます。StorageVolumeInfo クラスは、シングルトンオブジェクト
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
— ボリュームのルートディレクトリに対応する File オブジェクト
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
プロパティを使用すると、ストレージボリューム上で利用可能な領域を確認できます(
ボリューム上の利用可能な領域の特定
を参照)。