0

as3 airを使用して、ユーザーの電話からファイルを参照して選択できるようにすることを目指しています。

このコードは、アップロード ボックスをポップアップ表示するだけで、「ファイルが見つかりませんでした」と表示されます。しかし、私は自分の電話に 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);
}
4

2 に答える 2

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();
            }
        }
    }
}
于 2012-09-07T14:24:35.763 に答える
1

私はここであなたに答えを与えました:as3はアプリから電話でzipファイルを取得します-ファイルパスそして解凍します

基本的に、あなたはあなた自身のファイルブラウザを書かなければなりません、ヘルプドキュメントはこれを示唆します(しかし彼らはそれを組み込むことができました)。例えば

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

次に、1つを選択して、そのコンテンツを一覧表示できます

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

        var files:Array = dir.getDirectoryListing();

    }
}

よろしくお願いします

于 2012-09-04T10:01:18.810 に答える