如何使用java或groovy在目录下计算md5校验和? [英] How to calculate md5 checksum on directory with java or groovy?

查看:1218
本文介绍了如何使用java或groovy在目录下计算md5校验和?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在寻找使用java或groovy来获取完整目录的md5校验和。

I am looking to use java or groovy to get the md5 checksum of a complete directory.

我必须将源目录复制到目标,校验和源和目标以及删除源目录之后。

I have to copy directories for source to target, checksum source and target, and after delete source directories.

我找到这个文件的脚本,但是如何做同样的目录?

I find this script for files, but how to do the same thing with directories ?

import java.security.MessageDigest

    def generateMD5(final file) {
       MessageDigest digest = MessageDigest.getInstance("MD5")
       file.withInputStream(){is->
       byte[] buffer = new byte[8192]
       int read = 0
          while( (read = is.read(buffer)) > 0) {
                 digest.update(buffer, 0, read);
             }
         }
       byte[] md5sum = digest.digest()
       BigInteger bigInt = new BigInteger(1, md5sum)
       return bigInt.toString(16).padLeft(32, '0')
    }

有更好的方法吗? p>

Is there a better approach ?

推荐答案

我做了一个函数来计算MD5校验和:

I made a function to calculate MD5 checksum on Directory :

,我正在使用FastMD5: http://www.twmacinta.com/myjava/fast_md5.php

First, I'm using FastMD5: http://www.twmacinta.com/myjava/fast_md5.php

这是我的代码:

  def MD5HashDirectory(String fileDir) {
    MD5 md5 = new MD5();
    new File(fileDir).eachFileRecurse{ file ->
      if (file.isFile()) {
        String hashFile = MD5.asHex(MD5.getHash(new File(file.path)));
        md5.Update(hashFile, null);
      }

    }
    String hashFolder = md5.asHex();
    return hashFolder
  }

这篇关于如何使用java或groovy在目录下计算md5校验和?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆