(SCALA) Calcula o tamanho de arquivos de nome x dentro de uma arvore de dir
The snippet can be accessed without any authentication.
Authored by
Lior Spach
Edited
checkSizeMetadados 1.00 KiB
#!/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)
}
}
Please register or sign in to comment