2016-03-08 61 views
-1

如何檢查所有壓縮文件已被提取?AS3:如何檢查,所有壓縮文件已被提取?

var reader: ZipFileReader = new ZipFileReader(); 
    reader.addEventListener(ZipEvent.ZIP_DATA_UNCOMPRESS, zipDataUncompressHandler); 
    var zipFile: File = new File(zipFilePath); 
    reader.open(zipFile); 



    var list: Array = reader.getEntries(); 
    zipFileCount = list.length; 
    trace(zipFileCount + " Numbers of items"); 

    for each(var entry: ZipEntry in list) { 
     var filename: String = entry.getFilename(); 

     if (entry.isDirectory()) { 
      trace("DIR --->" + filename); 
     } else { 
      trace("FILE --->" + filename + "(" + entry.getCompressRate() + ")"); 
      reader.unzipAsync(entry); 
     } 
     zipFileWritedCount = zipFileWritedCount + 1; 
    } 
    function zipDataUncompressHandler(e: ZipEvent): void { 

     var entry: ZipEntry = e.entry; 

     var zfile: File = File.userDirectory.resolvePath('somefolder' + File.separator + entry.getFilename()); 
     var fs: FileStream = new FileStream(); 
     fs.open(zfile, FileMode.WRITE); 
     fs.writeBytes(e.data); 

     fs.close(); 

     trace("Refresh Scene"); 
     //include "RefreshScene.as"; 

    } 

我的文件被提取,但我需要檢查所有文件實際提取。 有什麼辦法可以做到這一點。

我在使用zip文件時使用airxzip

此外,如果我可以添加一個裝載機。

回答

0
  • 可以縮短zipFileWritedCount = zipFileWritedCount + 1;

    僅僅通過使用zipFileWritedCount +=1;甚至 zipFileWritedCount++;

  • 不管怎麼說用於檢查 「的所有文件中提取」 量提到你可以嘗試 的Equality ==operatormanual

簡單的例子:

for each(var entry: ZipEntry in list) 
{ 
    var filename: String = entry.getFilename(); 

    if (entry.isDirectory()) { trace("DIR --->" + filename); } 
    else 
    { 
     trace("FILE --->" + filename + "(" + entry.getCompressRate() + ")"); 
     reader.unzipAsync(entry); 
    } 
    zipFileWritedCount += 1; //add plus 1 

    if (zipFileWritedCount == zipFileCount) //if Equal to zipFileCount.. 
    { 
     trace ("unzipped all files..."); 
     trace ("zipFileCount: " + zipFileCount + " -VS- " + "zipFileWritedCount: " + zipFileWritedCount) 
    } 

}