Praca z woluminami pamięci masowej

Adobe AIR 2 i starsze wersje

W środowisku AIR 2 można wykrywać podłączanie i odłączanie woluminów pamięci masowej. Klasa StorageVolumeInfo definiuje obiekt storageVolumeInfo typu singleton. Obiekt StorageVolumeInfo.storageVolumeInfo wywołuje zdarzenie storageVolumeMount po podłączeniu woluminu pamięci masowej. Natomiast zdarzenie storageVolumeUnmount wywoływane jest po odłączeniu woluminu. Zdarzenia te są zdefiniowane w klasie StorageVolumeChangeEvent.

Uwaga: W nowoczesnych dystrybucjach systemu Linux obiekt StorageVolumeInfo wywołuje zdarzenia storageVolumeMount i storageVolumeUnmount wyłącznie w odniesieniu do urządzeń fizycznych i dysków sieciowych podłączonych w określonych miejscach.

Właściwość storageVolume klasy StorageVolumeChangeEvent jest obiektem StorageVolume. Klasa StorageVolume definiuje podstawowe właściwości woluminu pamięci masowej:

  • drive — litera stacji dysków przypisana do woluminu w systemie Windows (w innych systemach operacyjnych null )

  • fileSystemType — typ systemu plików na woluminie (np. "FAT", "NTFS", "HFS" lub "UFS").

  • isRemoveable — określa, czy wolumin jest wymienny ( true ), czy nie ( false ).

  • isWritable — określa, czy na woluminie możliwy jest zapis ( true ), czy nie ( false ).

  • name — nazwa woluminu.

  • rootDirectory — obiekt File odpowiadający katalogowi głównemu woluminu.

Klasa StorageVolumeChangeEvent zawiera również właściwość rootDirectory . Właściwość rootDirectory , która jest obiektem File odwołującym się do katalogu głównego podłączonego lub odłączonego woluminu pamięci masowej.

Właściwość storageVolume obiektu StorageVolumeChangeEvent jest niezdefiniowana ( null ) w przypadku odłączonego woluminu pamięci masowej. Można jednak uzyskać dostęp do właściwości rootDirectory zdarzenia.

Poniższy przykładowy kod wyświetla nazwę i ścieżkę woluminu pamięci masowej w momencie jego podłączenia:

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

Poniższy przykładowy kod wyświetla nazwę i ścieżkę woluminu pamięci masowej w momencie jego odłączenia:

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

Obiekt StorageVolumeInfo.storageVolumeInfo zawiera metodę getStorageVolumes() . Ta metoda zwraca wektor obiektów StorageVolume odpowiadających aktualnie podłączonym woluminom pamięci masowej. Poniższy kod ilustruje sposób generowania listy nazw i katalogów głównych wszystkich podłączonych woluminów pamięci masowej:

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); 
}
Uwaga: W nowych dystrybucjach systemu Linux metoda getStorageVolumes() zwraca obiekty odpowiadające urządzeniom fizycznym i napędom sieciowym podłączonym w określonych lokalizacjach.

Metoda File.getRootDirectories() tworzy listę katalogów głównych (zobacz Wskazywanie katalogu głównego systemu plików . Jednak obiekty StorageVolume (wyliczane przez metodę StorageVolumeInfo.getStorageVolumes() ) udostępniają więcej informacji o woluminach pamięci masowej.

Właściwość spaceAvailable właściwości rootDirectory obiektu StorageVolume umożliwia odczytanie ilości miejsca dostępnego na woluminie pamięci masowej. (Zobacz Określanie ilości miejsca dostępnego na woluminie ).