簡體   English   中英

FLEX:獲取文件夾大小

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM