Werken met opslagvolumes

Adobe AIR 2 of hoger

In AIR 2 kunt u nagaan wanneer massaopslagvolumes gekoppeld of ontkoppeld zijn. De StorageVolumeInfo-klasse definieert een storageVolumeInfo -singletonobject. Het object StorageVolumeInfo.storageVolumeInfo verzendt een storageVolumeMount -gebeurtenis wanneer een opslagvolume wordt gekoppeld. Er wordt een storageVolumeUnmount -gebeurtenis verstuurd wanneer een volume wordt ontkoppeld. Deze gebeurtenissen worden gedefinieerd door de klasse StorageVolumeChangeEvent.

Opmerking: Bij moderne Linux-distributies verzendt het StorageVolumeInfo-object alleen storageVolumeMount - en storageVolumeUnmount -gebeurtenissen voor fysieke apparaten en netwerkstations die op specifieke locaties zijn geïnstalleerd.

De eigenschap storageVolume van de StorageVolumeChangeEvent-klasse is een StorageVolume-object. De StorageVolume-klasse definieert basiseigenschappen van het opslagvolume:

  • station —De stationsletter van het volume in Windows ( null bij andere besturingssystemen)

  • fileSystemType - Het type bestandssysteem van het opslagvolume (zoals FAT, NTFS, HFS of UFS).

  • isRemoveable - Of een volume verwijderbaar is ( true ) of niet ( false ).

  • isWritable - Geeft aan of een volume beschrijfbaar is ( true ) of niet ( false ).

  • name - De naam van het volume.

  • rootDirectory - Een File-object dat correspondeert met de hoofdmap van het volume.

De klasse StorageVolumeChangeEvent bevat eveneens de eigenschap rootDirectory . De eigenschap rootDirectory is een File-object met een verwijzing naar de hoofdmap van het opslagvolume dat gekoppeld of ontkoppeld is.

In geval van ontkoppelde volumes wordt de eigenschap storageVolume van het StorageVolumeChangeEvent-object niet gedefinieerd ( null ). U hebt echter wel toegang tot de eigenschap rootDirectory van de gebeurtenis.

De volgende code retourneert de naam en het bestandspad van een volume wanneer dit wordt gekoppeld:

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

De volgende code retourneert de naam en het bestandspad van een volume wanneer dit wordt ontkoppeld:

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

Het object StorageVolumeInfo.storageVolumeInfo bevat een getStorageVolumes() -methode. Deze methode retourneert een vector van StorageVolume-objecten die corresponderen met de opslagvolumes die op dat moment gekoppeld zijn. De volgende code laat zien hoe u een lijst kunt weergeven met namen en hoofdmappen van alle gekoppelde opslagvolumes:

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); 
}
Opmerking: Bij moderne Linux-distributies retourneert de methode getStorageVolumes() objecten die overeenkomen met fysieke apparaten en netwerkstations die op specifieke locaties zijn geïnstalleerd.

De methode File.getRootDirectories() retourneert een lijst met hoofdmappen (zie Verwijzen naar het hoofdbestandssysteem ). StorageVolume-objecten (opgesomd door de methode StorageVolumeInfo.getStorageVolumes() ) geven echter meer informatie over de opslagvolumes.

Met de eigenschap spaceAvailable van de eigenschap rootDirectory van een StorageVolume-object kunt u erachter komen hoeveel ruimte er op een opslagvolume beschikbaar is. (Zie De beschikbare ruimte op een volume bepalen .)