在Ruby中复制文件时正在创建md5校验和



我想创建一个Ruby程序,尽可能快地将文件从SD卡复制到硬盘,但也要创建源文件和目标文件的md5校验和,以确保数据完整性。

我相信分块读取文件并创建校验和会比更快

  • 创建源的校验和
  • 复制文件
  • 创建目标的校验和

    $md5=摘要::md5.file("文件名"(.hexxdestist创建校验和,但我不知道如何使md5创建和文件复制同时发生?

您可以在流式传输文件时计算摘要,以避免重新读取文件。

def copy_md5(source, target)
  chunk_size=1024
  md5 = Digest::MD5.new
  open(target,'w') do |t|
    open(source) do |s|
      while chunk=s.read(chunk_size)
        md5.update chunk
        t.write chunk
      end
    end
  end
  md5
end

相关内容

  • 没有找到相关文章

最新更新