AS3:如何检查,所有的zip文件都已经解压了?

AS3: How to check, all zip files has been extracted?

如何检查所有的zip文件是否已经解压?

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

另外,如果我可以添加一个装载机。

  • 你可以缩短zipFileWritedCount = zipFileWritedCount + 1;

    仅使用 zipFileWritedCount +=1; 甚至 zipFileWritedCount++;

  • 无论如何检查 "all files extracted" 金额你可以试试 Equality ==operator as mentioned in the manual.

快速示例:

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 )
    }

}