2012/05/03

ディレクトリ内のファイルの情報を取得するRubyスクリプト

# -*- encoding: utf-8 -*-
require 'digest/md5'
require 'find'
# ディレクトリ配下のすべてのファイルにつき、ディレクトリパスとファイル名、
# 最終更新日時とMD5チェックサムをハッシュの配列として返す
def get_files_info(dir_path)
files_info = []
Find.find(dir_path) do |path|
file_info = Hash.new
next if File.directory?(path)
file_info['file_path'], file_info['file_name'] = File::split(path)
file_info['last_modified_time'] = File::stat(path).mtime.to_s
file_info['check_sum'] = Digest::MD5.hexdigest(File.binread(path))
files_info << file_info
end
return files_info
end
# Main
dir_path = 'C:/test'
infos = get_files_info(dir_path)
infos.each do |info|
info.each_value do |v|
puts v
end
end