AS加压config.zip

5 篇文章 0 订阅

package
{
 import flash.display.Sprite;
 import flash.events.Event;
 import flash.net.URLLoader;
 import flash.net.URLLoaderDataFormat;
 import flash.net.URLRequest;
 
 import nochump.util.zip.ZipEntry;
 import nochump.util.zip.ZipFile;
 
 public class zipTest extends Sprite
 {
  //加载器
  public var urlLoader:URLLoader = new URLLoader;
  
  public function zipTest()
  {
   super();
   //加载zip文件
   urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
   urlLoader.addEventListener(Event.COMPLETE,complete);
   urlLoader.load(new URLRequest('config.zip'));
  }
  public function complete(evt:Event):void{
   var zip:ZipFile = new ZipFile(evt.target.data);
   var arr:Array =  zip.entries;
   for each(var entry:ZipEntry in arr){
    var s:String = String(zip.getInput(entry));
    //trace("s=",s);
    var xml:XML = new XML(s);
    trace(entry.name,zip.size)
   }
  }
 }
}

 

 

 private var zipFiles:Array;
protected function btnToZip_clickHandler(event:MouseEvent=null):void
{
var xlsDir:File=new File(xlsUrlText.text);

zipFiles=[];
findFilesToZip(xmlUrlText.text);
findFilesToZip(xlsDir.resolvePath("csv").nativePath);
addFilesToZip(zipFiles);

}
private function findFilesToZip(path:String):void
{
var file:File=new File(path);
var itemList:Array=file.getDirectoryListing();
for each(var item:File in itemList){
if(item.isDirectory){
findFilesToZip(item.nativePath);
}else{
var ext:String=item.name.split(".")[1];
if(ext=="csv" || ext=="xml"){
zipFiles.push(item);
}
}
}
}

private function addFilesToZip(fileList:Array):void
{
var zipOut:ZipOutput = new ZipOutput();

while(fileList.length>0){
// file info
var item:File=fileList.pop() as File;
var fileName:String = item.name;
var stream:FileStream = new FileStream();
stream.open(item,FileMode.READ);
var fileData:ByteArray = new ByteArray();
stream.readBytes(fileData);
stream.close();
// Add entry to zip
var ze:ZipEntry = new ZipEntry(fileName);
zipOut.putNextEntry(ze);
zipOut.write(fileData);
zipOut.closeEntry();
//log
log("addToZip:"+item.nativePath);
}

// end the zip
zipOut.finish();
// access the zip data
var zipData:ByteArray = zipOut.byteArray;

var zipDir:File=new File(zipUrlText.text);
var zipFile:File = zipDir.resolvePath("data.zip");
var nstream:FileStream = new FileStream();
nstream.open(zipFile,FileMode.WRITE);
nstream.writeBytes(zipData);
nstream.close();

log("------------打包到Zip完成:"+zipFile.nativePath+"--------");
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值