1、作一个按钮单击事件: private function loadImg():void{ flag=0; file.browseForDirectory("请选择一个目录"); //激发Event.SELECT事件 } 2、再作一个file对象的监听 private var file:File; file.addEventListener(Event.SELECT,onSingleSelect); 3、 private function onSingleSelect(evt:Event):void{ if(flag==1){//flag标志位是否为最深目录 var fileStream:FileStream; fileStream.open(file,FileMode.WRITE); //public function open(file:File, fileMode:String):void //以同步方式打开 FileStream 对象,指向由 file 参数指定的文件。 //file:File — 指定要打开的文件的 File 对象。 // fileMode:String — FileMode 类中的一个字符串,用于定义 FileStream 的功能(如读取或写入文件的功能)。 var buf:ByteArray; buf.position=0; fileStream.writeBytes(buf); fileStream.close(); }else{ pop(evt.target as File);//查看是否为最深目录 } } 4、 private function pop(file:File):void { if(file.isDirectory) { //指示是否为对目录的引用。如果 File 对象指向一个目录,则该值为 true;否则为 false var arr:Array=file.getDirectoryListing();//getDirectoryListing()返回与此 File 对象表示的目录下的文件和目录对应的 File 对象的数组。此方法不浏览子目录的内容。 for each(var file:File in arr){//File 对象表示文件或目录的路径(既可以是文件也可以是路径) if(!file.isDirectory) { var vo:FileVo=new FileVo(); path=file.nativePath; startIndex=path.lastIndexOf("//"); //lastIndexOf(searchElement:*, fromIndex:int = 0x7fffffff):int //使用全等运算符 (===) 搜索数组中的项(从最后一项开始向前搜索),并返回匹配项的索引位置。 endIndex=path.lastIndexOf("."); vo.path=path; vo.id=int(path.substring(startIndex+1,endIndex)); //substring返回一个字符串,其中包含由 startIndex 指定的字符和一直到 endIndex - 1 的所有字符。 fileArray.push(vo); }else { pop(file); } } } fileArray.sortOn("id",Array.NUMERIC); tList.dataProvider=fileArray; }