AS3 AIR - “list / count”目录内容

时间:2012-08-11 13:16:16

标签: actionscript-3 flash air directory

使用AS3 Air for Android,我可以使用哪些代码列出本地计算机上所选目录中的所有文件或计数文件?在这种情况下,我使用Air For Android。

然后我想把它们放在一个数组

我愿意为这个答案给出50分。你可以看到我的代表很多,但这个问题对我来说是巨大的。如果我们不使用Class Package,我希望如果可能的话。

2 个答案:

答案 0 :(得分:11)

以下代码输出用户桌面目录中包含的文件和目录列表。

import flash.filesystem.File;

var desktop:File = File.applicationDirectory.resolvePath("images");
var files:Array = desktop.getDirectoryListing();
for (var i:uint = 0; i < files.length; i++)
{
 trace(files[i].nativePath); // gets the path of the files
 trace(files[i].name);// gets the name
 /// PUT ARRAY CODE HERE to add each "files[i].name" into an array for later use.

}

答案 1 :(得分:5)

您可以通过检查目录列表中的每个文件是否是目录来递归目录。以下函数将递归返回所有文件的计数(不包括目录)。

function recursiveDirectoryListing( directory:File ):int
{
     var count:int = 0;
     if (directory.isDirectory) 
     {
         var files:Array = directory.getDirectoryListing();
         for (var i:int = 0; i < files.length; i++)
         {
             if (files[i].isDirectory)
             {
                 count += recursiveDirectoryListing( files[i] );
             }
             else
             {
                 trace("file found: " + files[i].nativePath );
                 count += 1;
             }
         }
     }
     return count;
} 

然后你可以在你需要列出的任何位置调用这个函数:

recursiveDirectoryListing( File.applicationStorageDirectory );