FLEX:获取文件夹大小

时间:2010-01-12 02:45:30

标签: flex flash actionscript-3 air

我正在尝试通过以下方式获取文件夹大小:

var FolderFile:File = new File("file:///SomePath/Folder");
var FolderSize: FolderFile.size;

但是这给了我0的值,我怎样才能得到文件夹大小?无论如何要做到这一点?

Tranks

2 个答案:

答案 0 :(得分:4)

不,没有办法自动完成。获取目录的大小是一个复杂且可能非常缓慢的操作。目录中可能有数万个文件,或者目录可能位于(慢速?)网络上,更不用说磁带存储和类似的情况。

文件系统本身不存储目录大小信息,知道它的唯一方法是逐个文件计算,没有快捷方便的快捷方式。所以,你将不得不依赖上面发布的解决方案,是的,它会变慢。

答案 1 :(得分:1)

我想知道文件夹的大小(如10mb)。对不起第二行,我写错了,它是:

 var Foldersize:Number = FolderFile.size;

我刚刚创建了一个执行此功能的新类:

        public function GetFolderSize(Source:Array):Number
    {
        var TotalSizeInteger:Number = new Number();
        for(var i:int = 0;i<Source.length;i++){
            if(Source[i].isDirectory){
                TotalSizeInteger +=   this.GetFoldersize(Source[i].getDirectoryListing());
            }
            else{
                TotalSizeInteger += Source[i].size;
            }
        }
        return TotalSizeInteger;
    }

在“Source”中传递FolderFile.getDirectoryListing(),如下所示:

 var CC:CustomClass = new CustomClass();
 var FolderSize:Number = CustomClass.GetFolderSize(FolderFile.getDirectoryListing());

但这是一种非常慢的方法,是否有更简单快捷的方法来了解文件夹大小?

对不起我的语法,我只是在学习英语。

由于