以前公開していた、ZIP圧縮・解凍ライブラリですが、airxmailと同様にGoogle Codeに移動して公開することにしました。
こちらです。
これに伴い、ライブラリ名をairxzipに変更し、パッケージ名も変更しました。
まだまだ準備不足ですが・・・・
また、これ以外にパスワード付きZIPファイルにも一部対応しました。
ただし、ZipCrypto(PKWare crypto)形式の暗号化のみです。
こちらで説明されている、VII. Traditional PKWARE Encryptio という形式のみです。
この形式はWindowsXPなどで使われている暗号形式ですので、まあ、ふつうの人が一般的に目にするレベルでは使えるようになったと思います。
パスワード付きZIPファイルの使い方は以下のようになります。
作成(圧縮)方法
var writer:ZipFileWriter = new ZipFileWriter();
// パスワードの指定
// パスワードの指定がなければ、通常のZIPファイルが作成されます。
writer.setPassword("pass");
writer.open(File.desktopDirectory.resolvePath("crypto_airxzip.zip"));
// Add ByteArrayとして追加する場合
// ファイル名は"sample.txt"とする。
var data:ByteArray = new ByteArray();
data.writeUTFBytes("SAMPLE");
writer.addBytes(data,"sample.txt");
// Add Directory
// 空のディレクトリを追加する
writer.addDirectory("Foo1");
// ローカルにあるファイルを指定する場合
writer.addFile(File.desktopDirectory.resolvePath("image.jpg"),"Foo1/image.jpg");
// close()を忘れずに!!
writer.close();
解凍方法
var reader:ZipFileReader = new ZipFileReader();
var file:File = File.desktopDirectory.resolvePath("crypto_airxzip.zip");
reader.open(file);
reader.setPassword("pass");
var list:Array = reader.getEntries();
for each(var entry:ZipEntry in list){
if(!entry.isDirectory()){
if(entry.getFilename() == "sample.txt"){
try{
var bytes:ByteArray = reader.unzip(entry);
log.debug("sample.txt : " + bytes);
}
catch(e:ZipError){
log.warn(entry.getFilename() + ":" + e.message);
}
}
}
}


Flex勉強中のど素人です。
FlexやAirでファイルをzip化できないかを探してたら辿り着き参考にさせていただいてます。
ファイルの圧縮はできるのですが、フォルダの圧縮はどのように処理すればよいのでしょうか?
サンプルソースが公開されてると助かります
ご教授お願いします。
ありがとうございます。
私も、ほんの1年前まではど素人でした。といっても、今でもプロとしてやっているわけではないので、素人ですが・・・・
さて、フォルダの圧縮ですが、純粋にフォルダの圧縮という機能は持っていません。
申し訳ございません。
writer.addFile(File.desktopDirectory.resolvePath(”image.jpg”),”Foo1/image.jpg”);
で、実際のファイルのパスと、登録したいファイル名を
圧縮するフォルダにあるファイルをたどっていき、登録していくことになります。
これでフォルダを圧縮していきます。
実際にはFile.getDirectoryListing()などを使ってフォルダの下のファイルを見ていくことになると思います。
http://help.adobe.com/ja_JP/AS3LCR/Flash_10.0/flash/filesystem/File.html#getDirectoryListing()
また、現在あるサンプルは
http://code.google.com/p/airxzip/source/browse/#svn/trunk/samples/src/scripts
がすべてです。
よろしくお願いします。
返事ありがとうございます。
早速、上記の事を参考にさせて頂いたところ
なんとかうまくいきそうな気がしてきました。
ありがとうございました。
また、勉強させて頂きます。