#ruby script for listing the folder sizes in a folder in reversed order
require 'find'
def sizer(dirname)
sum=0
Find.find(dirname) do |f|
sum=sum+File.size(f)
# puts f
# puts sum
end
sum
end
dir=ARGV[0]
sa=Array.new #size array
pa=Array.new
Dir.foreach(dir) do |path|
folder=dir+"/"+path
if FileTest.directory?(folder)
if(path!="." && path!=".." )
pa.insert(-1, path);
s=sizer(folder)
sa.insert(-1, s)
end
end
end
#sorting
len=sa.size
for i in 0..len-2
flag=0
for j in 1..(len-1)
if(sa[j]>sa[j-1])
flag=1
t=sa[j]
sa[j]=sa[j-1]
sa[j-1]=t
t1=pa[j]
pa[j]=pa[j-1]
pa[j-1]=t1
end
end
if(flag==0)
break
end
end
for i in 0..sa.size-1
s=sa[i]
g=(s/(1024*1024*1024)).to_i
m=(s-g*1024*1024*1024)/(1024*1024).to_i
k=((s-g*1024*1024*1024-m*1024*1024)/1024).to_i
b=s-g*1024*1024*1024-m*1024*1024-k*1024
#st="%03d"%g+"G "+"%03d"%m+"M "+"%03d"%k+"K "+"%03d"%b+"B "
st=""
if(g!=0)
st=st+"%03d"%g+"G "
else
st=st+" "
end
if(m!=0)
st=st+"%03d"%m+"M "
else
st=st+" "
end
if(k!=0)
st=st+"%03d"%k+"K "
else
st=st+" "
end
print(st)
print(" "+pa[i]+"\n")
end
Thursday, May 14, 2009
[Work] ruby script for listing the folder sizes in a folder in reversed order
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment