Archive for 2010/1/28
以前公開していた、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);
}
}
}
}

