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

#!/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)
(0)

相关推荐

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

    #!/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}/#

  • PHP递归遍历指定文件夹内的文件实现方法

    今天早上在地铁上看了关于文件和文件夹的一章,正好最近刚搞懂linux的文件系统,觉得对文件属性的访问跟Shell命令很像,所以想晚上来实践一下. 发现php的文件夹函数好像没有提供遍历文件夹下的所有文件(包括子目录中的文件),于是,就想自己实现一个. 在写的时候发现一些操作文件夹的函数并不是自己想的那样.比如,dirname()根据提供的完整文件路径来取得文件所在的文件夹的路径,但如果你传入的是文件夹,它取的就是它的父文件夹.这点要明白.basename()也是同样的道理,传入文件夹路径取得就是

  • Python实现递归遍历文件夹并删除文件

    思路: 遍历文件夹下面的文件夹 如果文件夹名称等于".svn",则修改文件夹的属性(因为".svn"的文件都是只读的,你不能直接删除) 删除此文件夹 如果文件夹名称不等于".svn",则递归上面的方法 Python的实现 代码 import os import shutil import os.path import stat rootdir="F:\\work\\Test" for parent,dirnames,filen

  • C#遍历文件夹后上传文件夹中所有文件错误案例分析

    asp.net是没有直接选取文件夹的控件的,我也不知道,如果大家有的话可以一起交流下.后来我想着应该有三种方法: ①先将文件夹压缩后上传服务器,然后再服务器上解压: ②获得文件夹名及目录,然后遍历文件夹下面的文件以及子文件夹,循环上传: ③是使用AcitiveX控件. 那我果断就先通过上传对话框获得文件夹名和文件夹所在的系统文件路径,可是接下来就错愕了,一开始是想使用javascript遍历文件夹的 1  var fso = new ActiveXObject("Scripting.FileSy

  • Node.js 使用递归实现遍历文件夹中所有文件

    如标题所示,遍历文件夹下的所有文件,主要功能如下: 传入一个路径,读取路径里面所有的文件 遍历读取的文件,判断当前文件是文件还是文件夹 当前目录为文件,打印出当前文件绝对路径 当前目录为文件夹,获取文件夹路径,继续读取路径下文件 遍历完目录中的所有文件为止 代码中用到的几个方法 path.resolve(path) 一个路径或路径片段解析成一个绝对路径,返回解析后的路径字符串 fs.readdir(path[,option],callback) 读取目录下面的文件,返回目录下的文件列表对象,如果

  • 详解shell 遍历文件夹内所有文件并打印绝对路径

    例如你有一个文件夹路径是 /wls,如果想要遍历这个文件夹内的所有文件,并将它们保存到数组中,利用shell你可以这样做 for file in /wls/* do if test -f $file then arr=(${arr[*]} $file) fi done echo ${arr[@]} 这样就可以遍历wls文件夹下的所有文件并把它们的绝对路径存在arr这个数组中,但这还是不够的,因为文件夹中可能会有多个子文件夹,如果只过滤文件会遗漏掉子文件夹中的文件,所以需要扩展上面的方法,如果我们

  • PHP 遍历XP文件夹下所有文件

    复制代码 代码如下: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <?php //PHP遍历文件夹下所有文件 $handle=opendir('C:\\'); //我要遍历C盘的文件 echo "目录 handle: $handle <br/>"; echo "文件: <br/>"; whi

  • 详解Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)

    Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)具体代码如下: private void SMT(HttpContext context) { string SqlConnection82 = System.Configuration.ConfigurationManager.AppSettings["LocalConnectionString"]; string path = context.Server.MapPath(@"

  • C#简单遍历指定文件夹中所有文件的方法

    本文实例讲述了C#简单遍历指定文件夹中所有文件的方法.分享给大家供大家参考,具体如下: C#遍历指定文件夹中的所有文件: DirectoryInfo TheFolder=new DirectoryInfo(folderFullName); //遍历文件夹 foreach(DirectoryInfo NextFolder in TheFolder.GetDirectories()) this.listBox1.Items.Add(NextFolder.Name); //遍历文件 foreach(F

  • C语言 实现遍历一个文件夹的所有文件

    C语言 实现遍历一个文件夹的所有文件 最近学习C语言基础知识,有一个需求是需要遍历文件夹中的文件,对与这种很好实现,然后自己做了一个遍历所有文件的实现代码,做下记录: 实现代码: #include <stdio.h> #include <io.h> int main (void) { _finddata_t fileDir; long lfDir; if((lfDir = _findfirst(dir,&fileDir))==-1l) printf("No fil

随机推荐