#!/usr/bin/scala !# import java.io.File val nomearq = "metadados.txt" println("start") val dirs:List[String] = if (args.size>0) args.toList else List(".") sizePrintCada(dirs) //== Funções ===== def sizePrintCada(dirs:List[String]) { def countSize(f:File):Long = { if (f.isFile) { if (f.getName==nomearq) f.length else 0L } else if (f.isDirectory) { f.listFiles.par.map{countSize}.sum } else 0L } def printSize(pos:String, size:Long) { val s = size.toDouble print("Tamanho dos metadados em "+pos+": ") val (b,kb,mb,gb) = (1,1000,1000000,1000000000) if (s > gb) { printf("%.2fGB\n",s/gb) } else if (s>mb) { printf("%.2fMB\n",s/mb) } else if (s>kb) { printf("%.2fKB\n",s/kb) } else { printf("%.2fB \n",s/b) } } for (dir <- dirs) { var tamTotal = 0L val flist = (new File(dir)).listFiles.par val longSizes = flist.map{countSize} tamTotal = longSizes.seq.sum printSize(dir,tamTotal) } }