Javaでzipファイルを扱いたいなとときの備忘録。
zt-zipが簡単そうだったので、その使い方まとめ
dependenciesはこんな感じ
compile 'org.zeroturnaround:zt-zip:1.12'
Zipする
zipする:名前はそのまま。拡張子も変わらない
File targetFile = ....; // zipする対象のFile ZipUtil.unexplode(targetFile);
zipする:出力先を指定
File targetFile = ....; // zipする対象のFile File zipFile = ....; // 作成するzipのFile ZipUtil.pack(outputDir, zipFile);
zipする:zipする際に、ディレクトリ(dir)配下にファイルを配置
ZipUtil.pack(outputDir, zipFile, new NameMapper() { @Override public String map(String name) { return "dir/" + name; } });
UnZipする
unzipする:名前はそのまま。拡張子も変わらない
File zipFile = ...; // unzipする対象のFile ZipUtil.explode(zipFile);
unzipする:出力先指定
File zipFile = ....; // unzipする対象のFile File outputFile = ....; // 出力先のFile ZipUtil.unpack(zipFile, outputDir);
使いやすいけど、Orma or lombokと相性がわるい?
Modelでprivateのフィールドに@Setter/@Getterをつけていたが、
dependencyを追加したところで、Ormaが生成したソースで該当のフィールドを参照している部分が、
すべてgetterから直接アクセスに変わっていた。
フィールドの可視性をpublicする形にしているが、微妙。。。時間があればもう少し見たい。
ちなみん、使っていたIDEは、Android Studio。
以上!!