flex(air)有关本地目录操作实例


<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/halo">

<fx:Script>
<![CDATA[
import flash.filesystem.File;

private function myURL01():void{
/*file对象既可以代表一个指定目录,也可以代表一个指定文件。*/
//1、指定一个绝对路径
var dirFile:File = new File("D:/music/man");
trace("0、" + dirFile.nativePath);
//2、获得系统用户文档目录和当前项目所在目录
trace("1、" + File.userDirectory.nativePath); //C:\Documents and Settings\a
trace("2、" + File.documentsDirectory.nativePath); //2、C:\Documents and Settings\a\My Documents
trace("3、" + File.desktopDirectory.nativePath); //3、C:\Documents and Settings\a\桌面
//能兼容(即通用于)各种操作系统,此种方式名为flex的存储路径方式
trace("4、" + File.applicationStorageDirectory.resolvePath("mapMarker/").url); //app-storage:/mapMarker
trace("5、" + File.applicationStorageDirectory.nativePath); //4、C:\Documents and Settings\a\Application Data\fileUrl\Local Store
trace("6、" + thisProURL(File.applicationDirectory.nativePath)); //(自定义)5、C:\Documents and Settings\a\Adobe Flash Builder Beta 2\fileUrl
trace("7、" + File.applicationDirectory.nativePath); //6、C:\Documents and Settings\a\Adobe Flash Builder Beta 2\fileUrl\bin-debug
//3、追加及延伸指定目录
trace("8、" + File.userDirectory.resolvePath("My Music").nativePath); //7、C:\Documents and Settings\a\My Music
trace("---------------------------------------------------------------------");
}

private function thisProURL(strURL:String):String{
var str:String = "";
var len:int = strURL.split("\\").length;
for(var i:int = 0; i < len - 1; i++){
if(i != len - 2){
str += strURL.split("\\")[i] + "\\";
}else{
str = str + strURL.split("\\")[len - 2];
}
}
return str;
}

//4、遍历一个指定的目录
public function bianliFile(dirFile:File):void{
if(dirFile.exists){ //指定的file对象是否存在
if(dirFile.isDirectory){ //指定的file对象是否是目录
var sonFileArray:Array = dirFile.getDirectoryListing();
var sonsLength:uint = sonFileArray.length;
for(var i:int = 0; i < sonsLength; i++){
if(sonFileArray[i].isDirectory){ //是否为目录
trace("是目录---" + sonFileArray[i].nativePath);
}else{ //是文件
trace("是文件---" + sonFileArray[i].nativePath);
}
}
trace("---------------------------------------------------------------------");
}else{
trace("指定的对象不是目录");
}
}else{
trace("指定的对象目录不存在");
}
}

//5、获得指定目录的详细信息
public function infoDirFile(dirFile:File):void{
if(dirFile.exists){ //指定的file对象是否存在
if(dirFile.isDirectory){ //指定的file对象是否是目录
trace("目录创建时间:" + dirFile.creationDate.fullYear + "年"
+ (dirFile.creationDate.month + 1) + "月" + dirFile.creationDate.date + "日"
+ dirFile.creationDate.hours + "时" + dirFile.creationDate.minutes + "分" + dirFile.creationDate.seconds + "秒");
trace("目录创建者:" + dirFile.creator);
trace("目录扩展名:" + dirFile.extension);
trace("目录是否为隐藏状态:" + dirFile.isHidden);
trace("目录的名字:" + dirFile.name);
trace("目录的绝对路径:" + dirFile.nativePath);
trace("目录的大小:" + dirFile.size);
trace("---------------------------------------------------------------------");
}else{
trace("指定的对象不是目录");
}
}else{
trace("指定的对象目录不存在");
}
}

//6、在指定的目录下创建一个目录,如果目录已经存在则就不创建了,代码不执行了
public function createDirFile(dirFile:File, newDirName:String):void{
var sonDirFile:File = dirFile.resolvePath(newDirName);
sonDirFile.createDirectory();
}

//7、在指定目录下删除一个目录
public function deleteDirFile(dirFile:File, delDirName:String):void{
var sonDirFile:File = dirFile.resolvePath(delDirName);
sonDirFile.moveToTrash(); //移动到回收站
// sonDirFile.deleteFile(); //彻底删除文件,目前存在问题
}

//8、把指定目录从一个指定目录剪切到另外一个指定目录
public function moveDirFile(fromDirFile:File, toDirFile:File, moveDirName:String):void{
// var moveDirFile:File = fromDirFile.resolvePath(moveDirName);
// moveDirFile.moveTo(toDirFile, false);
}

//9、把指定目录从一个指定目录复制到另外一个指定目录
public function copyDirFile(fromDirFile:File, toDirFile:File, copyDirName:String):void{
try{
var copyDirFile:File = fromDirFile.resolvePath(copyDirName);
copyDirFile.copyTo(toDirFile, true);
}catch(error:Error){
trace(error.message);
}
}


]]>
</fx:Script>

<mx:Button id="but01ID" x="100" y="20" label="获取系统目录" click="myURL01();"/>
<mx:Button id="but02ID" x="100" y="60" label="遍历一个指定的目录" click="bianliFile(File.userDirectory);"/>
<mx:Button id="but03ID" x="100" y="100" label="获得一个指定的目录的详细信息" click="infoDirFile(File.userDirectory);"/>
<mx:Button id="but04ID" x="100" y="140" label="在指定的目录下创建一个目录" click="createDirFile(File.userDirectory, '世界杯');"/>
<mx:Button id="but05ID" x="100" y="180" label="在指定的目录下删除一个目录" click="deleteDirFile(File.userDirectory, '对对对');"/>
<mx:Button id="but06ID" x="100" y="220" label="把指定目录从一个指定目录剪切到另外一个指定目录"
click="moveDirFile(File.userDirectory, File.documentsDirectory, 'sss');"/>
<mx:Button id="but07ID" x="100" y="260" label="把指定目录从一个指定目录复制到另外一个指定目录"
click="copyDirFile(File.userDirectory, File.documentsDirectory, 'sss');"/>

<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>

</s:WindowedApplication>


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值