注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号
x
经典题 find all duplicate files in current directory and sub directory
附上代马参考~~~~~~ 希望对大家有所帮助 小弟积分低~~~米米米
public class FindDupFiles {
private static MessageDigest messageDigest;
private static final int BUFFER_SIZE = 1024*1024;
public static void findDuplicateFiles(Map<String, List<String>> filesList, File directory) {
for (File dirChild : directory.listFiles()) {
// Iterate all file sub directories recursively
if (dirChild.isDirectory()) {
findDuplicateFiles(filesList, dirChild);
} else {
try {
// Read file as bytes
FileInputStream fileInput = new FileInputStream(dirChild);
byte fileData[] = new byte[(int)dirChild.length()];
fileInput.read(fileData);
fileInput.close();
//In the above code, we apply a notable secure hast");
if (!dir.isDirectory()) {
System.out.println("Supplied directory does not exist.");
return;
}
Map<String, List<String>> lists = new HashMap<String, List<String>>();
FindDupFiles.findDuplicateFiles(lists, dir);
for (List<String> list : lists.values()) {
if (list.size() > 1) {
System.out.println("\n----duplicate files-----");
for (String file : list) {
System.out.println(file);
}
}
}
System.out.println("\n");
}
}
|