`

[转] Air程序遍历文件夹

 
阅读更多

功能说明:能选择一个文件夹,并将这个文件夹下的文件夹自动遍历,获取一组该文件夹下所有文件的位置。

思路说明:这里呢,我将使用一个递归函数来解决这个问题。

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
  3.         <mx:Script>
  4.                 <![CDATA[
  5.                         private var sysFile:File;
  6.                         private var FilrUrlArr:Array;
  7.                         private var key:int;//递归结束标志
  8.                         
  9.                         private function init():void{
  10.                                 sysFile = new File();
  11.                                 sysFile.addEventListener(Event.SELECT,selectHandler);
  12.                                 FilrUrlArr = new Array();
  13.                         }
  14.                         
  15.                         /**
  16.                         递归函数开始递归
  17.                         **/
  18.                         private function getFileArr(_url:String=""):void{
  19.                                 key++;
  20.                                 if(_url!=""){
  21.                                         sysFile.url = _url;
  22.                                 }
  23.                                 var arr:Array = sysFile.getDirectoryListing();
  24.                                 var leg:int = arr.length;
  25.                                 for(var i:int=0;i<leg;i++){
  26.                                         var file:File = arr[i] as File;
  27.                                         if(file.isDirectory){
  28.                                                 getFileArr(file.url);
  29.                                         }else{
  30.                                                 FilrUrlArr.push(file.url);
  31.                                         }
  32.                                 }
  33.                                 key--;
  34.                                 if(key==0){//判断递归是否结束
  35.                                         Idone();
  36.                                 }
  37.                         }
  38.                         
  39.                         /**
  40.                         开始执行获取文件地址的方法
  41.                         **/
  42.                         private function selectHandler(event:Event):void{
  43.                                 getFileArr();
  44.                         }
  45.                         
  46.                         
  47.                         /**
  48.                         这里可以切一个断点看看结果,或者干脆用用trace
  49.                         **/
  50.                         private function Idone():void{
  51.                                 FilrUrlArr;
  52.                         }
  53.                         
  54.                         
  55.                         /**
  56.                         开始执行按钮方法
  57.                         **/
  58.                         private function clickHanlder(event:MouseEvent):void{
  59.                                 sysFile.browseForDirectory("请选择您的文件夹");
  60.                         }
  61.                 ]]>
  62.         </mx:Script>
  63.         <mx:Button label="打开" click="clickHanlder(event)" />
  64. </mx:WindowedApplication>
复制代码
你在使用这个air程序后,比如在idone里面加一个断点,你就能看到一个文件夹下所有文件的位置了。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics