1

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

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

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

4

2 回答 2

12

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

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.

}
于 2012-08-11T13:28:11.817 回答
6

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

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 );
于 2012-08-19T00:16:49.600 回答