2012-06-15

Groovy : 여러 디렉토리의 사이즈를 구하고 크기 순으로 정렬하기

Ruby 버전에 이어서 Groovy 버전도 만들어보았다. 거의 생김새가 비슷한 언어여서, 몇가지만 수정하면 바로 동작한다.

def FOLDER_LIST = [
                    "/path/to1",
                    "/path/to2",
                    "/path/to3",
                    "/path/to4",
                    "/path/to5",
                  ]

def startDate = new Date().format('yyyy/MM/dd HH:mm:ss')

def size_folder_list = []
FOLDER_LIST.each { folder_name ->
    def folder_size = 0
    new File(folder_name).eachFileRecurse { path ->
        folder_size += path.size()
    }
    size_folder_list << "${folder_size}|${folder_name}"
}

size_folder_list = size_folder_list.sort { a, b ->
    (a_size, a_file) = a.split(/\|/)
    (b_size, b_file) = b.split(/\|/)
    // b_size as int <=> a_size as int
    b_size.toInteger() <=> a_size.toInteger()
}

size_folder_list.each { folder ->
    (f_size, f_path) = folder.split(/\|/)
    println("${f_size},${f_path}")
}


def endDate = new Date().format('yyyy/MM/dd HH:mm:ss')
println "\n\n\n"
println "================================================================================"
println "Start Time : $startDate"
println "End   Time : $endDate"
println "================================================================================"

댓글 없음:

댓글 쓰기