En AIR 2, es posible detectar el momento en que los volúmenes de almacenamiento masivo se montan o se desmontan. La clase StorageVolumeInfo define un objeto singleton
storageVolumeInfo
. El objeto
StorageVolumeInfo.storageVolumeInfo
distribuye un evento
storageVolumeMount
cuando se monta el volumen de almacenamiento. Asimismo, se distribuye un evento
storageVolumeUnmount
si el volumen se desmonta. La clase StorageVolumeChangeEvent define estos eventos.
Nota:
en distribuciones modernas de Linux, el objeto StorageVolumeInfo solo distribuye eventos
storageVolumeMount
y
storageVolumeUnmount
para dispositivos físicos y unidades de red montadas en ubicaciones determinadas.
La propiedad
storageVolume
de la clase StorageVolumeChangeEvent es un objeto StorageVolume. La clase StorageVolume define las propiedades básicas del volumen de almacenamiento:
-
drive
: letra de la unidad del volumen en Windows (
null
en otros sistemas operativos)
-
fileSystemType
: tipo del sistema de archivos en el volumen de almacenamiento (por ejemplo, "FAT", "NTFS", "HFS" o "UFS").
-
isRemoveable
: indica si se puede eliminar un volumen (
true
) o no (
false
).
-
isWritable
: indica si se puede modificar un volumen (
true
) o no (
false
)
-
name
: nombre del volumen.
-
rootDirectory
: objeto File que se corresponde con el directorio raíz del volumen.
La clase StorageVolumeChangeEvent también incluye una propiedad
rootDirectory
. La propiedad
rootDirectory
es un objeto File que hace referencia al directorio raíz del volumen de almacenamiento que se ha montado o desmontado.
La propiedad
storageVolume
del objeto StorageVolumeChangeEvent es undefined (
null
) en volúmenes sin montar. Sin embargo, se puede acceder a la propiedad
rootDirectory
del evento.
El siguiente código genera el nombre y la ruta de archivo de un volumen de almacenamiento cuando se monta:
StorageVolumeInfo.storageVolumeInfo.addEventListener(StorageVolumeChangeEvent.STORAGE_VOLUME_MOUNT, onVolumeMount);
function onVolumeMount(event:StorageVolumeChangeEvent):void
{
trace(event.storageVolume.name, event.rootDirectory.nativePath);
}
El siguiente código genera la ruta de archivo de un volumen de almacenamiento cuando se desmonta:
StorageVolumeInfo.storageVolumeInfo.addEventListener(StorageVolumeChangeEvent.STORAGE_VOLUME_UNMOUNT, onVolumeUnmount);
function onVolumeUnmount(event:StorageVolumeChangeEvent):void
{
trace(event.rootDirectory.nativePath);
}
El objeto
StorageVolumeInfo.storageVolumeInfo
incluye un método
getStorageVolumes()
. Este método devuelve un vector de los objetos StorageVolume que se corresponde con los volúmenes de almacenamiento montados actualmente. El siguiente código muestra cómo agrupar los nombres y los directorios raíz de todos los volúmenes de almacenamiento montados:
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);
}
Nota:
en distribuciones modernas de Linux, el método
getStorageVolumes()
devuelve objetos correspondientes a dispositivos físicos y unidades de red montadas en ubicaciones determinadas.
El método
File.getRootDirectories()
incluye los directorios raíz (consulte
Apuntar a la raíz del sistema de archivos
. No obstante, los objetos StorageVolume (enumerados mediante el método
StorageVolumeInfo.getStorageVolumes()
) ofrecen más información sobre los volúmenes de almacenamiento.
La propiedad
spaceAvailable
de la propiedad
rootDirectory
de un objeto StorageVolume se puede utilizar para obtener el espacio disponible en un volumen de almacenamiento. (Consulte
Determinación del espacio disponible en un volumen
.)