2012-09-04 47 views
0

希望能够使用as3 air从用户手机浏览并选择文件。as3 Air浏览SD卡上的文件?

此代码只弹出一个上传框并显示“找不到文件”。但是我知道我手机上有一个zip文件,所以它不能选择正确的文件夹路径。我怎样才能改变它,让它访问整个手机?

function unzip_init():void{ 

    fileFilter = new FileFilter("selected your zip file.", "*.zip; *.gz2; *.bz2;"); 
    file = new File(); 
    //file.browseForDirectory("Choose a directory"); // Only got me the directory path 
    file.browseForOpen("Open", [fileFilter]); 
    file.addEventListener(Event.SELECT, onSelectedFile); 
} 

回答

1

我给你在这里的答案:as3 get zip file on phone from app - file path then unzip

基本上你写你自己的文件浏览器,帮助文档表明,这种(但他们可以建造它)。例如

var rootDirs:Array = File.getRootFirectories();//all available root dirs 

那么你可以选择一个,并列出它的内容

if(rootDirs && rootDirs.length > 0) 
{ 
    var dir:File = rootDirs[0] 
    if(dir.isDirectory) 
    { 
     //try to enumerate it's content 

     var files:Array = dir.getDirectoryListing(); 

    } 
} 

问候

2

要从SD卡

var ROOT:File = File.documentsDirectory.resolvePath("/sdcard/"); 
var FILES:Array = ROOT.getDirectoryListing(); 
var TrackN:int; 
var SUBFOLDER:String; 

for (var i:int = 0; i < FILES.length; i++) 
{ 
    var File_Ext:String; 
    File_Ext = "" + FILES[i].extension; 

    if (File_Ext.toLowerCase() == "mp3") 
    { 
     TrackN++; 
     list.addItem({ label:FILES[i].name, data:TrackN, Song:FILES[i].url}); 
    } 

    if (FILES[i].isDirectory == true) 
    { 
     SUBFOLDER = "" + FILES[i].nativePath; 
     getSubfolders(); 
    } 

    function getSubfolders() 
    { 
     var SUBF:File = File.documentsDirectory.resolvePath(SUBFOLDER); 
     var FLIST:Array = SUBF.getDirectoryListing(); 

     for (var s:int = 0; s < FLIST.length; s++) 
     { 
      File_Ext = "" + FLIST[s].extension; 

      if (File_Ext.toLowerCase() == "mp3") 
      { 
       TrackN++; 
       list.addItem({ label:FLIST[s].name, data:TrackN, Song:FLIST[s].url}); 
      } 

      if (FLIST[s].isDirectory == true) 
      { 
       SUBFOLDER = "" + FLIST[s].nativePath; 
       getSubfolders(); 
      } 
     } 
    } 
} 
+3

让所有的M​​P3文件在未来,请为你的回答添加一些评论,这样我们就知道你在说什么,并且请格式化你的代码。这些都是什么? – davehale23