AS3:如何检查,所有zip文件都被提取出来了?

时间:2016-03-08 11:11:03

标签: actionscript-3 flash air zip loader

如何检查所有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

此外,如果我可以添加装载程序。

1 个答案:

答案 0 :(得分:0)

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

    仅使用zipFileWritedCount +=1;或偶数 zipFileWritedCount++;

  • 无论如何都要检查"提取的所有文件"你可以尝试的金额 operator 中提到的Equality == 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 )
    }

}