Following up on my previous post, here's how to archive a bunch of files and make a zip file.
After getting all the files you want to put in the archive, create a new ZipEntry object for each file and add it to a ZipOutput object using the putNextEntry() of the ZipOutput class. Then pass the ByteArray data of the file to the write() method of the ZipOutput class and close the entry by using the closeEntry() method. Finally, call the finish() method once you have done the same for all the files.
Here's the code snippet :
import flash.events.FileListEvent;
import flash.filesystem.*;
import nochump.util.zip.*;
private var zipInput:File = new File();
private var zipOutput:File = new File();
private var zipFile:ZipOutput;
private var files:Array = new Array();
private function loadFiles():void
{
zipInput.browseForOpenMultiple("Open ZIP file");
zipInput.addEventListener(FileListEvent.SELECT_MULTIPLE, onSelect);
}
private function onSelect(e:FileListEvent):void
{
for(var i:uint = 0;i < e.files.length;i++)
{
var stream:FileStream = new FileStream();
var f:File = e.files[i] as File;
stream.open(f,FileMode.READ);
var fileData:ByteArray = new ByteArray();
stream.readBytes(fileData);
var file:Object = new Object();
file.name = f.name;
file.data = fileData;
files.push(file);
}
}
private function createZIP():void
{
zipFile = new ZipOutput();
for(var i:uint = 0; i < files.length; i++)
{
var zipEntry:ZipEntry = new ZipEntry(files[i].name);
zipFile.putNextEntry(zipEntry);
zipFile.write(files[i].data);
zipFile.closeEntry();
}
zipFile.finish();
zipOutput.browseForSave("Select target directory");
zipOutput.addEventListener(Event.SELECT, onSave);
}
private function onSave(e:Event):void
{
var archiveFile:File = e.target as File;
if(!archiveFile.exists)
{
var stream:FileStream = new FileStream();
stream.open(archiveFile,FileMode.WRITE);
stream.writeBytes(zipFile.byteArray);
stream.close();
}
}
As usual you can download the project archive here. Happy experimenting.
from: http://pradeek.blogspot.com/2009/05/creating-zip-files-with-adobe-air-with.html#comments
代码中提到的nochump lib见附件。
其主页如下:
http://nochump.com/blog/?index.html
友情提示:博客地址如果打不开,请FQ。◕‿◕
分享到:
相关推荐
ZipArchive是Flex和Adobe AIR中用于处理压缩文件,如.zip格式的库。它提供了对zip文件的读写功能,包括添加、删除、提取文件和目录。在Flex和Adobe AIR项目中,我们可以利用ZipArchive来高效地压缩和解压缩数据。 ...
目前已实现Windows, Mac三大平台的支持,采用Adobe Air开发,采用MIT协议发布,代码托管在github上面。 主要特色: 多文件Hosts方案管理 单Hosts文件中分组管理 绑定到机器名或域名...
解压“macman_adobe_air.zip”后,你会得到Markman的安装文件。双击运行,按照安装向导的步骤进行操作。安装完成后,可以通过Dock或启动台启动Markman,开始你的图片标注工作。 在使用Markman时,可以利用其简洁的...
它提供了对ZIP格式压缩文件的完整支持,包括由WinRAR等流行压缩软件创建的ZIP文件。由于其稳定性和高效性,该工具在开发社区中受到了广泛的欢迎。 首先,我们来看看“Flex”和“Air”这两个关键词。Flex是Adobe公司...
- **数据压缩**: 使用Zip类或者第三方库来压缩文件或数据,这对于减少存储空间或网络传输量非常有用。 5. **在Adobe AIR应用程序中对PDF内容进行跨脚本编写** - **PDF文件操作**: 使用Adobe AIR提供的PDF支持功能...
ZIP文件内部包含了一个文件表,记录了每个压缩文件的位置和元数据。 2. ** 压缩算法:** ZIP文件支持多种压缩算法,如Deflate(最常见的)和LZMA等。Deflate算法是一种基于LZ77的变种,通过查找重复的数据模式进行...
使用要求:Adobe AIR虚拟机 v1.1或以上 下载地址:http://get.adobe.com/cn/air/ AIR版文档中心下载: http://www.ajaxjs.com/docs/Ext 2 API Documentation.zip ~3MB 用法:直接打开2.1 API Documentation.exe
- 在弹出的对话框中,勾选“创建自解压格式压缩文件”,并选择“存储”作为压缩方式,这样可以确保文件不被压缩而保持原样。 - 进入“高级”选项卡中的“自解压选项”,在“解压后运行”中输入“AdobeAIRInstaller...
把文件AdobeAIR3_0.xml放在 C:\Program Files (x86)\Adobe\Adobe Flash CS5.5\Common\Configuration\Players\ 另外需要 拷贝airglobal.swc 到 C:\Program Files (x86)\Adobe\Adobe Flash CS5.5\Common\...
7. **压缩和解压缩流程**:创建ZIP文件时,Flex Zip算法会遍历文件或目录,对每个文件进行DEFLATE压缩,然后将压缩后的数据写入ZIP文件。解压缩时,它读取ZIP文件中的每个数据块,解压后再写入到目标位置。 8. **...
微博AIR是基于Adobe AIR平台的新浪微博桌面客户端 【使用方法】 第一步:安装 Adobe AIR 运行环境(已安装的用户请跳过)http://down.chinaz.com/soft/29198.htm 第二步:安装 微博AIR (1.51) 客户端(解压后...
SinaTair新浪微博桌面客户端(微博air客户端)基于air平台的微博桌面客户端...A5源码友情提示:sinatair是一款基于Adobe AIR环境下的客户端软件,需要Adobe AIR环境支持,如果您未安装AIR环境请下点击下载安装:Adobe AIR
air-ane-fullscreen, 在Android上,为 Adobe AIR启用 true 全屏支持 全屏显示,适用于 Adobe AIRa的一个最常见的抱怨是,他们无法获得 true 全屏屏幕上的屏幕导航栏( 。包含背面,家庭和任务按钮的按钮) 。如果你是...
这个版本在发布时是Adobe AIR技术的一个重要里程碑,它提供了对ActionScript编程语言的支持,使得开发者能够利用这一强大的脚本语言创建丰富的桌面应用程序,同时享受到Adobe AIR平台的便捷和广泛兼容性。...
至于AS3,它是Adobe Flash Player和Adobe AIR中的编程语言,它也有能力进行加密解密操作。虽然AS3没有内置的ZIP库,但可以通过第三方库如AS3CoreLib或Zlib.as来处理ZIP文件。加密部分,AS3可以使用Flash的Crypto类,...
Adobe AIR功能 基于Flash 或 Flex:应用程序根内容(理解为容器)为Flash/Flex (SWF)。 基于HTML,应用程序根内容为HTML, JS, CSS。 基于HTML的Flash/Flex或PDF,应用程序根内容为基于HTML 的Flash/Flex (SWF) ...
7. **文件I/O操作**:在AS3中,`flash.filesystem.File`和`flash.filesystem.FileStream`类用于读写本地文件,而处理ZIP文件时,还需要将文件流读入内存,然后通过ZIP库进行解压或压缩。 了解这些知识点后,开发者...
【压缩包子文件的文件名称列表】"api-asdoc" 指的是这个压缩包解压后的核心内容,即API的ASDoc文档。这通常会包含一系列HTML文件,详细列出API的各种类、方法、属性和事件,以及它们的使用说明和示例。 接下来,...
`ZipArchive` 类是Flex提供的一个强大工具,用于处理ZIP格式的压缩文件,包括创建、读取和更新ZIP文件。这个类允许开发者轻松地操作各种类型的文件,如`.zip`, `.air`, `.docx`, `.xlsx`等。 首先,让我们详细了解...