저장소 볼륨을 사용한 작업

Adobe AIR 2 이상

AIR 2에서는 대량 저장소 볼륨이 마운트 또는 마운트 해제되는 경우를 감지할 수 있습니다. StorageVolumeInfo 클래스는 단일 storageVolumeInfo 객체를 정의합니다. StorageVolumeInfo.storageVolumeInfo 객체는 저장소 볼륨이 마운트된 경우 storageVolumeMount 이벤트를 전달합니다. 그리고 볼륨이 마운트 해제되면 storageVolumeUnmount 이벤트를 전달합니다. 이러한 이벤트는 StorageVolumeChangeEvent 클래스에서 정의됩니다.

참고: 현재 배포된 Linux 시스템에서는 StorageVolumeInfo 객체가 특정 위치에 마운트된 물리적 장치와 네트워크 장치를 위해서만 storageVolumeMount storageVolumeUnmount 이벤트를 전달합니다.

StorageVolumeChangeEvent 클래스의 storageVolume 속성은 StorageVolume 객체입니다. StorageVolume 클래스는 저장소 볼륨의 기본 속성을 정의합니다.

  • drive - Windows의 볼륨 드라이브 문자입니다. 기타 운영 체제의 경우 null 입니다.

  • fileSystemType - 저장소 볼륨의 파일 시스템 유형(예: "FAT", "NTFS", "HFS" 또는 "UFS")입니다.

  • isRemoveable - 볼륨을 제거할 수 있는지 여부입니다( true 또는 false ).

  • isWritable - 볼륨에 쓸 수 있는지 여부입니다( true 또는 false ).

  • name - 볼륨의 이름입니다.

  • rootDirectory - 볼륨의 루트 디렉토리에 해당하는 파일 객체입니다.

StorageVolumeChangeEvent 클래스에는 또한 rootDirectory 속성이 포함됩니다. rootDirectory 속성은 마운트 또는 마운트 해제된 저장소 볼륨의 루트 디렉토리를 참조하는 파일 객체입니다.

StorageVolumeChangeEvent 객체의 storageVolume 속성은 마운트되지 않은 볼륨에 대해 정의되지 않습니다( 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() 메서드에 의해 열거됨)는 저장소 볼륨에 대한 보다 자세한 정보를 제공합니다.

StorageVolume 객체의 spaceAvailable 속성( rootDirectory 속성)을 사용하여 저장소 볼륨에서 사용 가능한 공간을 확인할 수 있습니다. 볼륨에서 사용 가능한 공간 확인 을 참조하십시오.