Utilisation des volumes de stockage

Adobe AIR 2 et ultérieur

AIR 2 permet de détecter le montage ou le démontage des volumes de stockage de masse. La classe StorageVolumeInfo définit un objet storageVolumeInfo singleton. L’objet StorageVolumeInfo.storageVolumeInfo distribue un événement storageVolumeMount lors du montage d’un volume de stockage. Il distribue également un événement storageVolumeUnmount lors du démontage d’un volume. La classe StorageVolumeChangeEvent définit ces événements.

Remarque : sur les distributions récentes de Linux, l’objet StorageVolumeInfo ne distribue les événements storageVolumeMount et storageVolumeUnmount que pour les périphériques physiques et les lecteurs réseau montés à des emplacements déterminés.

La propriété storageVolume de la classe StorageVolumeChangeEvent est un objet StorageVolume. La classe StorageVolume définit les propriétés de base du volume de stockage :

  • drive : lettre de lecteur d’un volume sous Windows (null sous les autres systèmes d’exploitation)

  • fileSystemType : type du système de fichiers sur le volume de stockage (« FAT », « NTFS », « HFS » ou « UFS », par exemple).

  • isRemoveable : indique si un volume peut être retiré (true) ou non (false).

  • isWritable : indique si un volume est inscriptible (true) ou non (false).

  • name : nom du volume

  • rootDirectory : objet File correspondant au répertoire racine du volume

La classe StorageVolumeChangeEvent comprend également une propriété rootDirectory, à savoir un objet File qui référence le répertoire racine du volume de stockage monté ou démonté.

La propriété storageVolume de l’objet StorageVolumeChangeEvent n’est pas définie (autrement dit, elle correspond à null) si le volume est démonté. Vous pouvez toutefois accéder à la propriété rootDirectory de l’événement.

Le code suivant indique le nom et le chemin d’un volume de stockage lorsqu’il est monté :

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

Le code suivant indique le chemin d’un volume de stockage lorsqu’il est démonté :

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

L’objet StorageVolumeInfo.storageVolumeInfo comprend une méthode getStorageVolumes(). Cette méthode renvoie un vecteur d’objets StorageVolume qui correspondent aux volumes de stockage actuellement montés. Le code suivant indique comment afficher le nom et le répertoire racine de tous les volumes de stockage montés :

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); 
}
Remarque : sur les distributions récentes de Linux, la méthode getStorageVolumes() renvoie des objets correspondant à des périphériques physiques et à des lecteurs réseau montés à des emplacements déterminés.

La méthode File.getRootDirectories() recense les répertoires racine (voir Pointage vers la racine du système de fichiers). Les objets StorageVolume (énumérés par la méthode StorageVolumeInfo.getStorageVolumes()) proposent toutefois plus d’informations sur les volumes de stockage.

Vous disposez de la propriété spaceAvailable de la propriété rootDirectory d’un objet StorageVolume pour obtenir l’espace disponible sur un volume de stockage. (Voir Détermination de l’espace disponible sur un volume.)