Arbeiten mit Speichermedien

Adobe AIR 2 und höher

In AIR 2 kann das Mounten und Unmounten von Massenspeichermedien erkannt werden. Die StorageVolumeInfo-Klasse definiert ein storageVolumeInfo -Singleton-Objekt. Das StorageVolumeInfo.storageVolumeInfo -Objekt setzt ein storageVolumeMount -Ereignis ab, wenn ein Speichermedium gemountet wird. Beim Unmounten eines Speichermediums setzt es ein storageVolumeUnmount -Ereignis ab. Die StorageVolumeChangeEvent-Klasse definiert diese Ereignisse.

Hinweis: In modernen Linux-Distributionen setzt das StorageVolumeInfo-Objekt nur storageVolumeMount - und storageVolumeUnmount -Ereignisse für physische Geräte und Netzwerkgeräte ab, die an bestimmten Orten bereitgestellt werden.

Die storageVolume -Eigenschaft der StorageVolumeChangeEvent-Klasse ist ein StorageVolume-Objekt. Die StorageVolume-Klasse definiert grundlegende Eigenschaften des Speichermediums:

  • drive – Der Buchstabe des Speichermediums unter Windows. ( null auf anderen Betriebssystemen)

  • fileSystemType – Das Dateisystem des Speichermediums (wie FAT, NTFS, HFS oder UFS).

  • isRemoveable – Gibt an, ob es sich um ein Wechselspeichermedium handelt ( true ) oder nicht ( false ).

  • isWritable – Gibt an, ob ein Speichermedium beschrieben werden kann ( true ) oder nicht ( false ).

  • name – Der Name des Speichermediums.

  • rootDirectory – Ein File-Objekt, das dem Stammverzeichnis des Speichermediums entspricht.

Die StorageVolumeChangeEvent-Klasse enthält auch die rootDirectory -Eigenschaft. Die rootDirectory -Eigenschaft ist ein File-Objekt, das auf das Stammverzeichnis des Speichermediums verweist, für das ein Mounten oder Unmounten durchgeführt wurde.

Die storageVolume -Eigenschaft des StorageVolumeChangeEvent-Objekts ist für ein nicht gemountetes Speichermedium nicht definiert ( null ). Sie können jedoch auf die rootDirectory -Eigenschaft des Ereignisses zugreifen.

Der folgende Code gibt den Namen und den Dateipfad eines Speichermediums beim Mounten aus:

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

Der folgende Code gibt den Dateipfad eines Speichermediums beim Unmounten aus:

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

Das StorageVolumeInfo.storageVolumeInfo -Objekt enthält eine getStorageVolumes() -Methode. Diese Methode gibt einen Vektor der StorageVolume-Objekte zurück, die den derzeit gemounteten Speichermedien entsprechen. Mit dem folgenden Code werden die Namen und Stammverzeichnisse aller gemounteten Speichermedien aufgelistet:

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); 
}
Hinweis: Auf modernen Linux-Distributionen gibt die getStorageVolumes() -Methode Objekte zurück, die physischen Geräten und an bestimmten Orten gemounteten Netzwerklaufwerken entsprechen.

Die File.getRootDirectories() -Methode listet die Stammverzeichnisse auf (siehe Verweisen auf das Stammverzeichnis des Dateisystems ). Das StorageVolume-Objekt (von der StorageVolumeInfo.getStorageVolumes() -Methode aufgezählt) liefert jedoch mehr Informationen über die Speichermedien.

Mit der spaceAvailable -Eigenschaft der rootDirectory -Eigenschaft eines StorageVolume-Objekts kann der verfügbare Speicherplatz auf einem Speichermedium festgestellt werden. (Siehe Ermitteln des auf einem Datenträger verfügbaren Speicherplatzes .)