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;
- }