[AIR] 对存储器(Storage Volume)监听

摘要:
AIR2.0及以上提供了对系统的存储器信息访问和监听的API。通过这些API,你不仅可以访问到硬盘文件系统,同时还可以监听通过USB或火线进行连接的移动存储设备,例如移动硬盘和以存储方式连接到计算机的相机,MP3或手机等等。你可以通过对系统存储器信息添加监听器来监听这些外部设备的连接、断开状态。

AIR 2.0及以上提供了对系统的存储器信息访问和监听的API。通过这些API,你不仅可以访问到硬盘文件系统,同时还可以监听通过USB或火线进行连接的移动存储设备,例如移动硬盘和以存储方式连接到计算机的相机,MP3或手机等等。
你可以通过对系统存储器信息添加监听器来监听这些外部设备的连接、断开状态。

代码示例:

importflash.filesystem.StorageVolumeInfo;
importflash.events.StorageVolumeChangeEvent;
importflash.filesystem.StorageVolume;
importflash.filesystem.File;
var volumes:Vector.<StorageVolume >  = new Vector.<StorageVolume >;
volumes =StorageVolumeInfo.storageVolumeInfo.getStorageVolumes();
for (var i:int = 0; i < volumes.length; i++)
{
    trace(volumes[i].rootDirectory.nativePath);//每个装载的存储卷的根目录的本机路径
    trace(volumes[i].name);//存储卷名称,命名即为null
    trace(volumes[i].rootDirectory.getDirectoryListing());//存储卷根目录下文件列表
    trace(volumes[i].drive);//存储卷盘符
    //遍历所有存储卷根目录下是否存在DIGITALBOARD文件夹
    for (var j:int = 0; j<volumes[i].rootDirectory.getDirectoryListing().length; j++)
    {
        //trace(volumes[i].rootDirectory.getDirectoryListing()[j].name);
        if (volumes[i].rootDirectory.getDirectoryListing()[j].name == "DIGITALBOARD")
        {
            trace(volumes[i].rootDirectory.nativePath);
            trace(File.desktopDirectory);
            //var file:File = volumes[i].rootDirectory.nativePath
            var file:File = File(volumes[i].rootDirectory.resolvePath(volumes[i].rootDirectory.nativePath + "DIGITALBOARD"));//+File.separator
            trace(volumes[i].rootDirectory.nativePath+"DIGITALBOARD");
            //file.copyTo(File.desktopDirectory);
            //file.browseForOpen("打开");
            //file.addEventListener(Event.SELECT,onSelect);
            return;
        }
    }
}
function onSelect(e:Event):void{
    trace("select",e.target.name);
}

//监听外部设备连接和断开状态
if(StorageVolumeInfo.isSupported)
{
    trace("平台支持 StorageVolumeInfo 类");
    //卷装入;
StorageVolumeInfo.storageVolumeInfo.addEventListener(StorageVolumeChangeEvent.STORAGE_VOLUME_MOUNT, onVolumeMount);
    //存储卷卸载;
StorageVolumeInfo.storageVolumeInfo.addEventListener(StorageVolumeChangeEvent.STORAGE_VOLUME_UNMOUNT, onVolumeUnmount);
}
else{
    trace("平台不支持 StorageVolumeInfo 类");
}

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 );
}
function onVolumeUnmount(e:StorageVolumeChangeEvent):void{
    trace( e.storageVolume.name,"卸载可移动磁盘");
    //trace(e.storageVolume.drive);
}

免责声明:文章转载自《[AIR] 对存储器(Storage Volume)监听》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Usb-type-C端口实现的挑战与设计方案Kubernetes 针对资源紧缺处理方式的配置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

armv6 的特点

ARMv6体系结构   实现新一代微处理器的第一步就是订立一个新的结构体系。这里所说的结构体系只是对处理器行为进行描述,并不包括具体地指定处理器是如何被建造的。结构体系的定义提供了处理器和外界(操作系统,应用程序和调试支持)的接口,从细节上说,处理器结构体系定义了指令集、编程模式和最近的存储器之间的接口。最新的ARM处理器架构—ARMv6,发布于2001年...

SSE指令集系列之三

6. SSE整数运算指令 pavgb MM,MM/m64 pavgb XMM,XMM/m128 把源存储器与目的寄存器按字节无符号整数相加,再除以2,结果四舍五入为整数放入目的寄存器。 源存储器为m128时,内存变量地址必须16字节对齐. pavgw MM,MM/m64 pavgw XMM,XMM/m128 把源存储器与目的寄存器按字无符号整数相加,再除...

CAM(内容可寻址存储器)的认知

     内容可寻址存储器CAM(Coment-Addressable Memo-ry)以内容进行寻址的存储器,是一种特殊的存储阵列RAM。它的主要工作机制就是将一个输入数据项与存储在CAM中的所有数据项自动同时进行比较,判别该输入数据项与CAM中存储的数据项是否相匹配,并输出该数据项对应的匹配信息。 内容可寻址存储器的特性         1、160 n...

存储器2

2的10次方等于1024 即1K(看做是数量单位),主要用来表示地址线的所有组合数量 半导体存储器的结构: 片选信号的作用:可以让某个芯片或者某些芯片同时进行工作 半导体芯片的译码驱动方式: 解决的问题是:如何根据给定的地址信号获得对应的存储单元 1)线选法,将存储单元的地址像一位数组那样编址,不适用与容量大的存储器,因为容量过大时,地址线就要很多很多...

算法&amp;gt;并行算法

并行算法 一、并行算法 什么是并行算法? 它可理解为: 适合于在某类并行计算机上求解问题和处理数据的算法, 是一些可同时执行的诸进程的集合, 这些进程相互作用和协调作用, 从而达到对给定问题的求解。 二、并行计算机 并行处理就是把一个传统串行处理的任务分解开来, 并将其分配给多个处理器同时处理, 即在同一时间间隔内增加计算机的操作数量。为并行处理所设计的计算...

汇编语言学习 基础知识

       汇编语言是除了机器语言我们能操纵的最底层的语言了,汇编语言是所有语言中效率最高的一种语言,很多的驱动,很多的嵌入式的都是用汇编语言写的,当然也有用C语言那写的,C语言是比汇编语言高级,学会了汇编语言,对底层有一个大概的了解,知道CPU和内存和各种各样的硬件他是如何的配合的,如何地读取信息的,在学习高级语言的话会更加的得心应手,用机器的思维去操...