Trabalho com volumes de armazenamento

Adobe AIR 2 e posterior

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 .)