2012-05-15 2 views
1

폴더를 .zip 파일로 압축하려고합니다. FZip 라이브러리를 사용하고 있습니다.fzip을 사용하여 폴더 압축 zip

var zip:FZip = new FZip(); 
zip.addFile("Users/Vincent/Desktop/test/", null); 

내 바탕 화면에 폴더 시험은 내가 압축 할 폴더입니다 : 이것은 내가 지금까지있는 것입니다.

지금은 그 폴더를 압축하고 내 바탕 화면에 zip 파일을 배치하고 싶지만 그들은 byteArrays 등에 대해 이야기하고 있으며 어떻게 해야할지 잘 모릅니다. 누군가 나를 도울 수 있습니까? enter link description here

답변

1

여기는 작동 예제입니다. 익명으로 많은 기능을 사용했습니다.

package { 
import deng.fzip.FZip; 

import flash.display.Sprite; 
import flash.events.Event; 
import flash.events.MouseEvent; 
import flash.net.FileReference; 
import flash.net.FileReferenceList; 
import flash.utils.ByteArray; 

public class ZipTest extends Sprite { 
    private var imageRefList : FileReferenceList = new FileReferenceList(); 
    private var saveRef : FileReference = new FileReference(); 
    private var zipName : String = "someName.zip"; 

    public function ZipTest() { 
     var someButton : Sprite = new Sprite(); 
     with(someButton.graphics) { 
      beginFill(0x00ff00); 
      drawRect(0, 0, 50, 50); 
      endFill(); 
     } 
     addChild(someButton).addEventListener(MouseEvent.CLICK, function(event : MouseEvent) : void { 
      var saveZip : Function = function(zip : FZip) : void { 
       var out : ByteArray = new ByteArray(); 
       zip.serialize(out); 

       saveRef.addEventListener(Event.COMPLETE, function(e : Event) : void { 
        trace("done"); 
       }); 
       saveRef.save(out, zipName); 
      }; 

      imageRefList.addEventListener(Event.SELECT, function(e : Event) : void { 
       var zip : FZip = new FZip(); 
       var count : int = imageRefList.fileList.length; 
       for each (var image: FileReference in imageRefList.fileList) { 
        image.addEventListener(Event.COMPLETE, function(e : Event) : void { 
         var img : FileReference = FileReference(e.target); 
         trace(count + " loaded... " + img.name); 
         zip.addFile(img.name, img.data); 

         count--; 
         if (count == 0) saveZip(zip); 
        }); 
        trace("load: " + image.name); 
        image.load(); 
       } 
      }); 
      imageRefList.browse(); 
     }); 
    } 
} 

}