Sklo

51
reputation
4

package validator;

import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.security.DigestInputStream; import java.security.MessageDigest; import java.util.ArrayList; import java.util.List;

public class HashValidtor {

private static List<File> files = new ArrayList<File>();

public static void main(String[] args) {
    List<File> topLevelDirectories = HashValidtor.getChildren(HashValidtor.createNewFile("C://ta3j"));
    addFiles(topLevelDirectories);
    for (File file : files)
        System.out.println(file.getName()+"|"+HashValidtor.createHashOfFile(file));
}

private static void addFiles(List<File> fileArray) {

    for (File topLevelFile : fileArray) {
        if (topLevelFile.isFile() && (!topLevelFile.isHidden()))
            files.add(topLevelFile);
        else if (topLevelFile.isDirectory() && (!topLevelFile.isHidden())) {
            HashValidtor.addFiles(HashValidtor.getChildren(topLevelFile));
        }
    }
}

private static List<File> getChildren(File singleFile) {
    List<File> files = new ArrayList<File>();
    for (File file : singleFile.listFiles()) {
        files.add(file);
    }
    return files;
}

public static File createNewFile(String name) {
    return new File(name);
}

public static byte[] createHashOfFile(File file) {
    MessageDigest md ;

    try {
        md = MessageDigest.getInstance("MD5");
        InputStream is = new FileInputStream(file);
        DigestInputStream dis = new DigestInputStream(is, md);
        return md.digest();
    }catch(Exception e){
        return null;
    }

}

}