2008/01/15

groovyでzipファイルを暗号化してみる

社内で外部に資料をメール送信する際には、 必ず

  • ファイルをzip圧縮する
  • zipファイルを暗号化する

というルールがあります。 毎回手作業でやっていたのではきりがないので、 これもgroovyスクリプト化してみました。 いかがスクリプトの一部。 ここでは、 Zipユーティリティークラス というライブラリを利用させていただきました。 これは便利! ありがとう!

zipTheAttachedFiles.groovy

import jp.hishidama.zip.ZipCloak;
import java.io.File
import java.util.*
import java.text.*;

def desktop = System.getProperty("user.home") + "/デスクトップ"
def srcdir = new File("${desktop}/src")
def distdir = desktop

if( !srcdir.exists() ){
    srcdir.mkdir()
}

print "${srcdir.name}フォルダにファイルを入れてください。"
System.in.read()

def dateStr = new SimpleDateFormat("yyyyMMdd").format(new GregorianCalendar().time)
def password = "${dateStr}";
def zipfile = new File("${distdir}/${srcdir.name}.zip")
ant = new AntBuilder()

ant.delete(
    file:"${distdir}/${srcdir.name}.zip"
)
ant.zip(
    destfile:"${zipfile.path}"
    ,basedir:"${srcdir}"
    ,update:"true"
){
}

def encZipfile = new File("""${desktop}/encrypt-${zipfile.name}""");
ant.delete(
    file:"${encZipfile.path}"
)
ZipCloak zip = new ZipCloak(zipfile);
zip.encrypt(encZipfile, password.getBytes("MS932"));
ant.delete(
    file:"${distdir}/${srcdir.name}.zip"
)



println "※※処理完了!※※"
println "何かキーを押してください"
System.in.read()

0 件のコメント:

コメントを投稿