as3 Air浏览sd卡上的文件?

时间:2012-09-04 00:33:34

标签: android actionscript-3 air

希望能够访问使用as3 air从用户手机浏览和选择文件。

此代码仅弹出一个上传框,并显示“未找到文件”。但我知道我的手机上有一个拉链,所以一定不能选择正确的文件夹路径。如何更改它以使其访问整个手机?

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

2 个答案:

答案 0 :(得分:2)

从SD卡获取所有mp3文件

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

答案 1 :(得分:1)

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

基本上你必须编写自己的文件浏览器,帮助文档建议这一点(但是他们可以构建它)。 e.g。

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();

    }
}

最好的问候