【问题标题】:AS3: How to check, all zip files has been extracted?AS3:如何查看,所有的 zip 文件都解压了吗?
【发布时间】:2016-03-08 11:11:02
【问题描述】:

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

如果我可以添加一个加载器。

【问题讨论】:

    标签: actionscript-3 flash air zip loader


    【解决方案1】:
    • 您可以缩短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 )
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2012-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-07
      • 2015-06-11
      • 2012-07-04
      相关资源
      最近更新 更多