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)监听的更多相关文章

  1. storage 事件监听

    在公司的一次内部分享会上, 偶然知道了这个H5的新事件, 解决了我之前的一个bug. 事情是这样的, 第A网页上显示的数量的总和, 点击去是B页面, 可以进行管理, 增加或者删除, 当用户做了增删操作 ...

  2. HTML5 storage事件监听

    引用<h5移动web开发指南>上的话: “当同源页面的某个页面修改了localStorage,其余的同源页面只要注册了storage事件,就会触发” 所以,localStorage  st ...

  3. 详解vuex结合localstorage动态监听storage的变化

    这篇文章主要介绍了详解vuex结合localstorage动态监听storage的变化,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 需求:不同组件间共用同一数据,当一个 ...

  4. 在 Windows Server Container 中运行 Azure Storage Emulator(一):能否监听自定义地址?

    我要做什么? 改 ASE 的监听地址.对于有强迫症的我来说,ASE 默认监听的是 127.0.0.1:10000-10002,这让我无法接受,所以我要将它改成域名 + 80 端口的方式: 放到容器中. ...

  5. 换肤功能的实现以及监听storage实现多个标签页一起换肤

    1:需求:项目的侧边栏实现换肤功能,核心代码: updateSkin (val) { const existSkinLink = document.head.querySelector('link[i ...

  6. 在vue中监听storage的变化

    1.首先在main.js中给Vue.protorype注册一个全局方法,其中,我们约定好了想要监听的sessionStorage的key值为’watchStorage’,然后创建一个StorageEv ...

  7. Sdcard插拔、状态广播监听,Android文件系统,Android存储器相关知识总结

    一 SDcard广播监听,注册,取消注册的实现 (1)根据实际需要监听的事件,添加action,并注册,一般在onCreate中添加 //在IntentFilter中选择你要监听的行为 IntentF ...

  8. Oracle 11gR2 RAC修改监听默认端口

    一.修改SCAN listener port 1.1 修改SCAN listener port 1.2 重启SCAN listener生效新端口 1.3 确认更改 二.修改Listener Ports ...

  9. 涂抹Oracle笔记1-创建数据库及配置监听程序

    一.安装ORACLE数据库软件及创建实例OLTP:online transaction processing 指那些短事务,高并发,读写频繁的数据库系统.--DB_BLOCK_SIZE通常设置较小.O ...

随机推荐

  1. Excel VBA入门(七)注释、宏按钮及错误处理

    系统性的知识前面已经讲完,从本章开始,本系列教程涉及的将会是一些相对凌散的内容. 1. 注释 代码注释是一件利人利己的事,为了方便自己在代码需要更新修改时,依然能够快速地看懂自己完的每一行代码到底是什 ...

  2. IIS网站最大并发连接数

    打开网站服务器IIS---[控制面板]-[管理工具]--[Internet信息服务IIS管理器]   打开应用程序池--找到网站对应使用的应用程序池--选择右侧[高级设置]   在[高级设置]窗口可看 ...

  3. CentOS搭建VSFTP服务器

    一.安装vsftpd 1.查看是否已经安装vsftpd 2.如果没有,就安装 3.测试是否安装成功 4.安装成功设置开机启动 二.配置vsftpd 1.修改配置文件/etc/vsftpd/vsftpd ...

  4. oracle数据库学习记录(持续更新中...)

    --------------------------------------------day1------------------------------------------------- 1. ...

  5. [c++] final override keyword

    the two keyword are aimed at virtual function final final function must be a virtual funtion , final ...

  6. springboot之JdbcTemplate单数据源使用

    本文介绍在Spring Boot基础下配置数据源和通过JdbcTemplate编写数据访问的示例. 数据源配置 在我们访问数据库的时候,需要先配置一个数据源,下面分别介绍一下几种不同的数据库配置方式. ...

  7. poj 1066 Treasure Hunt (未完)

    #include<stdio.h> #include<math.h> #include<stdlib.h> #define eps 1e-8 #define zer ...

  8. [GO]接口的转换

    package main import "fmt" type Humaner interface { //子集 SayHi() } type Personer interface ...

  9. Qt之QML开发常用知识

    小技巧: 1. QML的内部逻辑可以直接调试 2. ctrl+ alt + space,在写QML时,可以直接调出工具条 3. 属性以小写字母开发 4. 属性改变事件,基本都是on+Property+ ...

  10. php 用csv文件导出大量数据初方案

    背景:接手的项目中支持导出一批数据,全数量在50W左右.在接手的时候看代码是直接一次查询MySQL获得数据,然后用header函数直接写入csv,用户开始导出则自动下载.但是,在全导出的时候,功能出现 ...