본문 바로가기
Programming/Ruby

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

by 가우리언 2012. 6. 14.
728x90
반응형

Ruby 에서 여러 디렉토리의 사이즈를 구하고 크기 순으로 정렬하는 방법을 구현해보았다. 여러 팀에서 공유하는 파일의 서버의 경우, 각 디렉토리별(팀)로 어느 정도 사용하는 지를 알아보고 싶을 때 이용하면 좋을 것이다.

require 'find'


$FOLDER_LIST = [
                'C:\\path\\to1',
                'C:\\path\\to2',
                'C:\\path\\to3',
                'C:\\path\\to4',
                'C:\\path\\to5',
               ]

start_time = Time.now


size_folder_list = Array.new
$FOLDER_LIST.each() do | folder_name |
  folder_size = 0
  Find.find(folder_name) do | path |
    if(File.exist?(path))
      folder_size += File.size(path)
    end
  end
  size_folder_list << "#{folder_size}|#{folder_name}"
end

size_folder_list = size_folder_list.sort do |a, b| 
  (a_size, a_file) = a.split(/\|/)
  (b_size, b_file) = b.split(/\|/)
  b_size.to_i <=> a_size.to_i
end

size_folder_list.each do | folder |
  (f_size, f_path) = folder.split(/\|/)
  print f_size + "," + f_path + "\n"
end


end_time = Time.now
puts "\n\n========================================================================="
puts "Start Time : #{start_time}"
puts "End Time   : #{end_time}"
728x90
반응형