0

好的 。我相当有能力,但仍在学习。这是针对我在 AIR 中编写的程序。基本上我需要从给定文件夹中获取混合类型和内容的文件并将它们压缩。

这是我放在一起的代码,它有点工作。我遇到的问题是 zip 中的文件都包含零字节。实际上是空的。我错过了什么或做错了什么?

import flash.filesystem.File;
import flash.events.Event;
import deng.fzip.*;

var directory:File = File.desktopDirectory.resolvePath("FOLDER/");

var zip:FZip = new FZip(); 
var files:Array = directory.getDirectoryListing();
for(var i:uint = 0; i < files.length; i++)
{
    zip.addFile(files[i].name, files[i].data);
    trace(files[i].name);
}

var ba:ByteArray = new ByteArray(); 
zip.serialize(ba); 
ba.position = 0; 
var finalZIP:File = File.desktopDirectory.resolvePath("TEST.zip"); 
var fs:FileStream = new FileStream(); 
fs.open(finalZIP, FileMode.WRITE); 
fs.writeBytes(ba); 
fs.close();

EDIT=:运行代码时,我在错误面板中注意到了这一点。

  ....app\scripts_classes\deng\fzip\FZipFile.as, Line 362   Warning: 1106: Empty statement found where block of code expected. Did you type ';'     accidentally?

从我所看到的似乎很好,但是我没有编写 Fzip 脚本。

4

1 回答 1

0

File.data仅在调用 后填充File.load

对于字节的同步加载,请查看FileStream. 这些文档给出了概要。

于 2012-06-09T01:53:03.163 回答