[AIR] 对存储器(Storage Volume)监听
AIR 2.0及以上提供了对系统的存储器信息访问和监听的API。通过这些API,你不仅可以访问到硬盘文件系统,同时还可以监听通过USB或火线进行连接的移动存储设备,例如移动硬盘和以存储方式连接到计算机的相机,MP3或手机等等。
你可以通过对系统存储器信息添加监听器来监听这些外部设备的连接、断开状态。
代码示例:
import flash.filesystem.StorageVolumeInfo;
import flash.events.StorageVolumeChangeEvent;
import flash.filesystem.StorageVolume;
import flash.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)监听的更多相关文章
- storage 事件监听
在公司的一次内部分享会上, 偶然知道了这个H5的新事件, 解决了我之前的一个bug. 事情是这样的, 第A网页上显示的数量的总和, 点击去是B页面, 可以进行管理, 增加或者删除, 当用户做了增删操作 ...
- HTML5 storage事件监听
引用<h5移动web开发指南>上的话: “当同源页面的某个页面修改了localStorage,其余的同源页面只要注册了storage事件,就会触发” 所以,localStorage st ...
- 详解vuex结合localstorage动态监听storage的变化
这篇文章主要介绍了详解vuex结合localstorage动态监听storage的变化,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 需求:不同组件间共用同一数据,当一个 ...
- 在 Windows Server Container 中运行 Azure Storage Emulator(一):能否监听自定义地址?
我要做什么? 改 ASE 的监听地址.对于有强迫症的我来说,ASE 默认监听的是 127.0.0.1:10000-10002,这让我无法接受,所以我要将它改成域名 + 80 端口的方式: 放到容器中. ...
- 换肤功能的实现以及监听storage实现多个标签页一起换肤
1:需求:项目的侧边栏实现换肤功能,核心代码: updateSkin (val) { const existSkinLink = document.head.querySelector('link[i ...
- 在vue中监听storage的变化
1.首先在main.js中给Vue.protorype注册一个全局方法,其中,我们约定好了想要监听的sessionStorage的key值为’watchStorage’,然后创建一个StorageEv ...
- Sdcard插拔、状态广播监听,Android文件系统,Android存储器相关知识总结
一 SDcard广播监听,注册,取消注册的实现 (1)根据实际需要监听的事件,添加action,并注册,一般在onCreate中添加 //在IntentFilter中选择你要监听的行为 IntentF ...
- Oracle 11gR2 RAC修改监听默认端口
一.修改SCAN listener port 1.1 修改SCAN listener port 1.2 重启SCAN listener生效新端口 1.3 确认更改 二.修改Listener Ports ...
- 涂抹Oracle笔记1-创建数据库及配置监听程序
一.安装ORACLE数据库软件及创建实例OLTP:online transaction processing 指那些短事务,高并发,读写频繁的数据库系统.--DB_BLOCK_SIZE通常设置较小.O ...
随机推荐
- partial分部类
意义 1.源代码控制 2.将一个类或结构分成不同的逻辑单元 3.代码拆分
- if UNITY_EDITOR这个判断常用,还有哪个常用捏?
#if DEVELOPMENT_BUILD || UNITY_EDITOR DEVELOPMENT_BUILD表示开发版的意思,会在程序右下角显示 Development Build 我们可以根据这个 ...
- 混合开发之DSBridge(同时支持Android和iOS)
什么是 Javascript bridge 随着h5的不断普及及优化,以及移动端对动态化的需求越来越大,开发者经常需要在app中嵌入一些网页,然后会在web和native之间进行交互,如传递数据,调用 ...
- Java-集合条件筛选
import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.ArrayList; impor ...
- 341. Flatten Nested List Iterator展开多层数组
[抄题]: Given a nested list of integers, implement an iterator to flatten it. Each element is either a ...
- Linux的作业管理
一.作业管理的场景 作业管理(job control)是在bash环境下使用的,主要使用在同一个bash中管理多个作业的场景,譬如登录bash之后想同时复制文件.数据搜索,编译. 但是bash的作业管 ...
- .NET 使用HttpWebRequest 伪造Request.UrlReferrer
在网上找了许久关于伪造UrlReferrer地址资料,也许是搜索的关键词不对吧,还是内容涉及到了什么敏感的东西,愣是没找到,换成自定义UrlReferrer也找不到.经过仔细研究,原来在.NET中要自 ...
- [C++] Type Conversion(类型转换)
Type Conversion(类型转换) Two kinds of type conversion explict type conversion(显式类型转换) impict type conve ...
- code1085 数字游戏
划分dp 把环变链(读入4 3 -1 2变成4 3 -1 2 4 3 -1 2) 设dp[i][j][k]为把i~j分成k份,各部分内的数字相加,相加所得的k个结果对10取模后再相乘,最终得到的一个数 ...
- cannot find -lf2c
sudo apt-get install libf2c2 auso apt-get install libf2c2-dev