[AIR] 获取U盘,打开U盘

时间:2021-12-18 14:06:08

示例:

获取存储卷的方法:

package com.controls
{
import flash.events.StorageVolumeChangeEvent;
import flash.filesystem.StorageVolume;
import flash.filesystem.StorageVolumeInfo; /**
* @author Frost.Yen
* @E-mail 871979853@qq.com
* @create 2016-10-10 下午3:31:57
*
*/
public class StorageVolumeControl
{ public function StorageVolumeControl()
{
//监听外部设备连接和断开状态
if (StorageVolumeInfo.isSupported)
{
trace("平台支持 StorageVolumeInfo 类");
//卷装入;
StorageVolumeInfo.storageVolumeInfo.addEventListener(StorageVolumeChangeEvent.STORAGE_VOLUME_MOUNT, onVolumeMount);
//存储卷卸载;
StorageVolumeInfo.storageVolumeInfo.addEventListener(StorageVolumeChangeEvent.STORAGE_VOLUME_UNMOUNT, onVolumeUnmount);
}
else
{
trace("平台不支持 StorageVolumeInfo 类");
}
}
private function onVolumeMount(e:StorageVolumeChangeEvent):void
{
trace( e.storageVolume.name,"检测到可移动磁盘" );
//trace( e.storageVolume.fileSystemType );
//trace( e.storageVolume.isRemovable );
//trace( e.storageVolume.isWritable );
//trace( e.storageVolume.rootDirectory );
//trace( e.storageVolume.rootDirectory.nativePath );
}
private function onVolumeUnmount(e:StorageVolumeChangeEvent):void
{
trace("卸载可移动磁盘" );
}
/**
* 获取所有 存储卷对象StorageVolume
* @return
*
*/
public function getStorageVolumes():Vector.<StorageVolume>
{
var volumes:Vector.<StorageVolume > = new Vector.<StorageVolume >;
volumes = StorageVolumeInfo.storageVolumeInfo.getStorageVolumes();
return volumes;
}
/**
* 获取可以可删除的存储卷( 操作系统将存储卷视为可删除 (true) 还是不可删除 (false)。)
* @return
*
*/
public function getRemovable():Vector.<StorageVolume>
{
var removable:Vector.<StorageVolume> = new Vector.<StorageVolume>();
var volumes:Vector.<StorageVolume >= getStorageVolumes();
for (var i:int = 0; i < volumes.length; i++)
{
if (volumes[i].isRemovable)
{
trace(volumes[i].rootDirectory.nativePath);
removable.push(volumes[i]);
}
}
return removable;
}
}
}

打开第一个U盘:

var volumes:Vector.<StorageVolume> = _storageVolume.getRemovable();
if(volumes.length){
var file2:File =new File(volumes[0].rootDirectory.nativePath);
file2.openWithDefaultApplication();
}