2012-09-04 77 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