No AIR 2, você pode detectar quando os volumes de armazenamento em massa são montados ou desmontados. A classe StorageVolumeInfo define um objeto
storageVolumeInfo
singleton. O objeto
StorageVolumeInfo.storageVolumeInfo
despacha um evento
storageVolumeMount
quando um volume de armazenamento é montado. E também despacha um evento
storageVolumeUnmount
quando um volume é desmontado. A classe StorageVolumeChangeEvent define esses eventos.
Nota:
Em distribuições modernas de Linux, o objeto StorageVolumeInfo envia apenas eventos
storageVolumeMount
and
storageVolumeUnmount
para dispositivos físicos e unidades de rede montados em locais específicos.
A propriedade
storageVolume
da classe StorageVolumeChangeEvent é um objeto StorageVolume. A classe StorageVolume define as propriedades básicas do volume de armazenamento:
-
unidade
—A letra da unidade do volume no Windows (
null
em outros sistemas operacionais)
-
fileSystemType
— O tipo do sistema de arquivo no volume de armazenamento (como "FAT", "NTFS", "HFS" ou "UFS")
-
isRemoveable
— Se um volume é removível
true
) ou não (
false
)
-
isWritable
— Se um volume é gravável
true
) ou não (
false
)
-
name
— O nome do volume
-
rootDirectory
— Um objeto de arquivo que corresponde ao diretório raiz do volume
A classe StorageVolumeChangeEvent também contém uma propriedade
rootDirectory
. A propriedade
rootDirectory
é um objeto File que faz referência ao diretório raiz do volume de armazenamento que foi montado ou desmontado.
A propriedade
storageVolume
do objeto StorageVolumeChangeEvent não está definida (
null
) para o volume não montado. No entanto, você pode acessar a propriedade
rootDirectory
do evento.
O código a seguir libera o nome e o caminho do arquivo de um volume de armazenamento quando é montado:
StorageVolumeInfo.storageVolumeInfo.addEventListener(StorageVolumeChangeEvent.STORAGE_VOLUME_MOUNT, onVolumeMount);
function onVolumeMount(event:StorageVolumeChangeEvent):void
{
trace(event.storageVolume.name, event.rootDirectory.nativePath);
}
O código a seguir libera o caminho do arquivo de um volume de armazenamento quando é desmontado:
StorageVolumeInfo.storageVolumeInfo.addEventListener(StorageVolumeChangeEvent.STORAGE_VOLUME_UNMOUNT, onVolumeUnmount);
function onVolumeUnmount(event:StorageVolumeChangeEvent):void
{
trace(event.rootDirectory.nativePath);
}
O objeto
StorageVolumeInfo.storageVolumeInfo
inclui um método
getStorageVolumes()
. Esse método retorna um vetor dos objetos StorageVolume que correspondem aos volumes de armazenamento atualmente montados. O código a seguir mostra como listar os nomes e os diretórios raiz de todos os volumes de armazenamento 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:
Em distribuições modernas de Linux, o método
getStorageVolumes()
retorna objetos que correspondem a dispositivos físicos e unidades de rede montados em locais específicos.
O método
File.getRootDirectories()
lista os diretórios raiz (consulte
Apontando para a raiz do sistema de arquivos
. No entanto, os objetos StorageVolume (enumerados pelo método
StorageVolumeInfo.getStorageVolumes()
) fornece mais informações sobre os volumes de armazenamento.
Você pode usar a propriedade
spaceAvailable
da propriedade
rootDirectory
de um objeto StorageVolume para obter o espaço disponível em um volume de armazenamento. (Consulte
Determinação de espaço disponível em um volume
.)