ゲンゾウ用ポストイット

Java、Groovy、Linux関連の備忘録

指定したフォルダの画像を、作成日時別のフォルダに割り振り

お盆休み中結構外出して、家族のデジカメ写真がたまっていた。
これらを作成日時別のフォルダ(yyyy_MM_dd形式)に割り振りする処理をスクリプトで書いてみた。
ただ割り振るだけでなく、割り振った写真のファイル名も変更してみた。(yyyy_MM_dd_NNN.jpg、NNNは連番)

#!/usr/bin/env groovy
assert args.size() > 0
def dir = new File(args[0])
def i = 0

dir.listFiles().findAll{
    it.file
}.groupBy{
    new Date(it.lastModified()).format("yyyy_MM_dd")
}.each{ key, value ->
    def newdir = new File(dir.path + "/" + key)
    newdir.mkdirs()
    
    i = 0
    value.sort{ it.name }.each{
        it.renameTo(new File(newdir.path + "/" + newdir.name + "_" + (i++).toString().padLeft(3, '0') + ".jpg"))
    }
}