Comment calculer la somme de contrôle md5 sur l'annuaire avec java ou groovy?

Je suis à la recherche d'utiliser java ou groovy pour obtenir la somme de contrôle md5 d'un répertoire complet.

Je dois copier les répertoires de la source à la cible, de la somme de contrôle de la source et de la cible, et après supprimer les répertoires source.

J'ai trouver ce script pour les fichiers, mais comment faire la même chose avec les annuaires ?

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')
}

Est-il une meilleure approche ?

Vous devez utiliser l'un des org.apache.commons.codec.digest.DigestUtils.md5Hex méthodes préférence pour le code ci-dessus
Je trouve FastMD5, vraiment facile de trouver le fichier MD5 : Chaîne de hash = MD5.asHex(MD5.getHash(new File(filename)))); de plus en Plus facile à utiliser et plus Rapide.

OriginalL'auteur Fabien Barbier | 2010-06-09