我正在尝试通过以下方式获取文件夹大小:
var FolderFile:File = new File("file:///SomePath/Folder");
var FolderSize: FolderFile.size;
但是这给了我0的值,我怎样才能得到文件夹大小?无论如何要做到这一点?
Tranks
答案 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());
但这是一种非常慢的方法,是否有更简单快捷的方法来了解文件夹大小?
对不起我的语法,我只是在学习英语。
由于