[英]FLEX: getting a folder size
我正在嘗試通過執行以下操作來獲取文件夾大小:
var FolderFile:File = new File("file:///SomePath/Folder");
var FolderSize: FolderFile.size;
但這給我一個0值,如何獲得文件夾的大小? 反正有這樣做嗎?
惡作劇
不,沒有辦法自動完成。 獲取目錄的大小是一個復雜的操作,可能會非常緩慢。 一個目錄中可能有成千上萬個文件,或者一個目錄可能位於(慢速)網絡上,更不用說磁帶存儲和類似情況了。
文件系統本身不存儲目錄大小信息,唯一了解文件大小的方法是逐個文件地進行計算,沒有快捷的捷徑。 因此,您將不得不依靠上面發布的解決方案,是的,它會很慢。
我想知道文件夾的大小(例如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;
}
在“源”中,傳遞FolderFile.getDirectoryListing(),如下所示:
var CC:CustomClass = new CustomClass();
var FolderSize:Number = CustomClass.GetFolderSize(FolderFile.getDirectoryListing());
但這是一種非常緩慢的方法,是否有更快捷簡便的方法來知道文件夾的大小?
對不起我的語法,我正在學習英語。
謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.