Operazioni con volumi di memorizzazione

Adobe AIR 2 e versioni successive

In AIR 2, potete rilevare quando volumi di memorizzazione di massa vengono montati o rimossi. La classe StorageVolumeInfo definisce un oggetto storageVolumeInfo singleton. L'oggetto StorageVolumeInfo.storageVolumeInfo invia un evento storageVolumeMount quando un volume di memorizzazione viene montato, mentre invia un evento storageVolumeUnmount quando il volume viene rimosso. La classe StorageVolumeChangeEvent definisce questi eventi.

Nota: nelle distribuzioni Linux moderne, l'oggetto StorageVolumeInfo invia solo eventi storageVolumeMount e storageVolumeUnmount per i dispositivi fisici e le unità di rete montate in particolari posizioni.

La proprietà storageVolume della classe StorageVolumeChangeEvent è un oggetto StorageVolume. La classe StorageVolume definisce le proprietà di base del volume di memorizzazione:

  • drive: la lettera di unità del volume in Windows (null in altri sistemi operativi)

  • fileSystemType: il tipo di file system sul volume di memorizzazione (Ad esempio, "FAT", "NTFS", "HFS" o "UFS")

  • isRemoveable: specifica se un volume è rimovibile (true) o no (false)

  • isWritable: specifica se un volume è scrivibile (true) o no (false)

  • name: il nome del volume

  • rootDirectory: un oggetto file corrispondente alla directory principale del volume

La classe StorageVolumeChangeEvent include anche una proprietà rootDirectory, ovvero un oggetto File che fa riferimento alla directory principale del volume di memorizzazione che è stato montato o rimosso.

La proprietà storageVolume dell'oggetto StorageVolumeChangeEvent non è definita (null) per un volume non montato. Tuttavia, potete accedere alla proprietà rootDirectory dell'evento.

Il codice seguente restituisce il nome e il percorso file di un volume di memorizzazione quando viene montato:

StorageVolumeInfo.storageVolumeInfo.addEventListener(StorageVolumeChangeEvent.STORAGE_VOLUME_MOUNT, onVolumeMount); 
function onVolumeMount(event:StorageVolumeChangeEvent):void 
{ 
    trace(event.storageVolume.name, event.rootDirectory.nativePath); 
}

Il codice seguente restituisce il percorso file di un volume di memorizzazione quando viene rimosso:

StorageVolumeInfo.storageVolumeInfo.addEventListener(StorageVolumeChangeEvent.STORAGE_VOLUME_UNMOUNT, onVolumeUnmount); 
function onVolumeUnmount(event:StorageVolumeChangeEvent):void 
{ 
    trace(event.rootDirectory.nativePath); 
}

L'oggetto StorageVolumeInfo.storageVolumeInfo include un metodo getStorageVolumes() che restituisce un vettore di oggetti StorageVolume corrispondenti ai volumi di memorizzazione attualmente montati. Il codice seguente mostra come elencare i nomi e le directory principali di tutti i volumi di memorizzazione montati:

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: nelle distribuzioni Linux moderne, il metodo getStorageVolumes() restituisce oggetti che corrispondono ai dispositivi fisici e alle unità di rete montate in particolari posizioni.

Il metodo File.getRootDirectories() elenca le directory principali (vedete Puntamento alla directory principale di sistema. Tuttavia, gli oggetti StorageVolume (enumerati dal metodo StorageVolumeInfo.getStorageVolumes()) forniscono ulteriori informazioni sui volumi di memorizzazione.

Potete utilizzare la proprietà spaceAvailable della proprietà rootDirectory di un oggetto StorageVolume per recuperare lo spazio disponibile su un volume di memorizzazione. (Vedete Rilevamento dello spazio disponibile su un volume.)