Работа с томами запоминающих устройств

Adobe AIR 2 и более поздних версий

В AIR 2 можно обнаружить момент подключения и отключения томов запоминающего устройства. Класс StorageVolumeInfo определяет единичный объект storageVolumeInfo . Объект StorageVolumeInfo.storageVolumeInfo отправляет событие storageVolumeMount при подключении тома запоминающего устройства. А когда том отключается, он отправляет событие storageVolumeUnmount . Класс StorageVolumeChangeEvent определяет эти события.

Примечание. В современных версиях ОС Linux объект StorageVolumeInfo отправляет только события storageVolumeMount и storageVolumeUnmount для физических устройств и сетевых дисков, установленных в определенных местоположениях.

Свойство storageVolume класса StorageVolumeChangeEvent является объектом StorageVolume. Класс StorageVolume определяет основные свойства тома запоминающего устройства:

  • drive — буква тома жесткого диска в ОС Windows ( null в остальных операционных системах)

  • fileSystemType — тип файловой системы в томе запоминающего устройства (например, «FAT», «NTFS», «HFS» или «UFS»);

  • isRemoveable — является ли том съемным ( true ) или нет ( false );

  • isWritable — является ли том доступным для записи ( true ) или нет ( false );

  • name — имя тома;

  • rootDirectory — объект File, соответствующий корневому каталогу тома;

Класс StorageVolumeChangeEvent также включает свойство rootDirectory . Свойство rootDirectory представляет собой объект File, ссылающийся на корневой каталог тома запоминающего устройства, которое было подключено или отключено.

Свойство storageVolume объекта StorageVolumeChangeEvent не определено ( null ) для отключенного тома. Однако вы можете открыть свойство rootDirectory этого события.

Следующий код выводит имя и путь к файлу в томе запоминающего устройства, когда оно подключается:

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

Следующий код выводит путь к файлу в томе запоминающего устройства, когда оно отключается:

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

Объект StorageVolumeInfo.storageVolumeInfo включает метод getStorageVolumes() . Этот метод возвращает вектор объектов StorageVolume, относящийся к подключенным в данный момент томам запоминающего устройства. В следующем коде показано, как составляется список корневых каталогов всех подключенных томов запоминающего устройства:

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); 
}
Примечание. В современных дистрибутивах Linux метод getStorageVolumes() возвращает объекты, соответствующие физическим устройствам или сетевым дискам, подключенным в определенных местоположениях.

Метод File.getRootDirectories() выводит список корневых каталогов (см. раздел Указание на корневой каталог файловой системы ). Однако объекты StorageVolume (перечисленные методом StorageVolumeInfo.getStorageVolumes() ) предоставляют дополнительную информацию о томах запоминающего устройства.

Свойство spaceAvailable свойства rootDirectory для объекта StorageVolume можно применять, чтобы получить сведения о свободном месте на томе запоминающего устройства. См. раздел Определение свободного места на томе .