当前位置 博文首页 > Ruby遍历文件夹同时计算文件的md5sum

    Ruby遍历文件夹同时计算文件的md5sum

    作者:admin 时间:2021-02-07 06:23

    #!/usr/bin/ruby -w
    #
    require 'digest/md5'
    
    if ARGV.empty?
        puts "usgae: #$0 path"
        exit 0
    end
    dir_name=ARGV.shift
    
    def dir_md5sum(path)
        md5s=Array.new
        if File.directory?(path)
            Dir.new(path).each do |file|
                next if file =~ /^\.+$/
                file="#{path}/#{file}"
                if File.directory?(file)
                    dir_md5sum(file)
                elsif File.file?(file)
                    md5="#{Digest::MD5.hexdigest(File.read(file))} #{file}"
                    md5s.push(md5)
                end
            end
        elsif File.file?(path)
            md5="#{Digest::MD5.hexdigest(File.read(path))} #{path}"
            md5s.push(md5)
        else
            puts "Ivalid File type"
            exit 2
        end
        md5s.each do |item|
            puts item
    
        end
    end
    
    dir_md5sum(dir_name)
    

    js
下一篇:没有了