Я разрабатываю дубликат искателя в течение некоторого времени. Задача, с которой я сейчас сталкиваюсь, - подсчет количества дубликатов файлов, найденных в папке и подпапках.У вас проблемы с подсчетом файлов
Что делает мой код: всякий раз, когда он попадает в конкретный файл с дубликатами, он считает правильным, но когда он попадает в другой файл с краткими дубликатами, он начинается с начала.
Это не то, что я хотел. Я хотел, чтобы он подсчитывал общее количество файлов с несколькими дубликатами.
Вот мои коды:
public void findDuplicateFiles(File[] files) throws IOException {
Map<String, List<File>> filesByHash = new HashMap<>();
int number = 0;
for (File file : files) {
if (!file.isFile()) {
findDuplicateFiles(file.listFiles());
continue;
}
MD5.initNativeLibrary();
String hash = MD5.asHex(MD5.getHash(file));
List<File> filesForHash = filesByHash.get(hash);
if (filesForHash == null) {
filesByHash.put(hash, filesForHash = new ArrayList<>());
}
filesForHash.add(file);
}
for (Map.Entry<String, List<File>> entry : filesByHash.entrySet()) {
List<File> filesForHash = entry.getValue();
if (filesForHash.size() > 1) {
String hash = entry.getKey();
System.out.printf("%,d files have hash %s:%n",
filesForHash.size(), hash);
int index = filesForHash.size() - 1;
filesForHash.remove(index);
DefaultListModel model = (DefaultListModel) list.getModel();
for (File file : filesForHash) {
// This is where things goes wrong
File fs = file.getAbsoluteFile();
for (int i = 1; i <= fs.length(); i++);
number++;
//count.setText(number + " Files");
//model.addElement(file);
System.out.println(" " + file);
System.out.println(number + " Files");
}
};
}
//System.out.println(" No Duplicate Found ");
}
пыльника это результат я получаю:
6 files have hash da8f60e8474f7c89f368e5d6d379dcdc:
C:\Users\Mbaegbu\Documents\Bandicam\files\bandicam 2014-07-02 10-55-03-421 - Copy (2).jpg
1 Files
C:\Users\Mbaegbu\Documents\Bandicam\files\bandicam 2014-07-02 10-55-03-421 - Copy (3).jpg
2 Files
C:\Users\Mbaegbu\Documents\Bandicam\files\bandicam 2014-07-02 10-55-03-421 - Copy (4).jpg
3 Files
C:\Users\Mbaegbu\Documents\Bandicam\files\bandicam 2014-07-02 10-55-03-421 - Copy (5).jpg
4 Files
C:\Users\Mbaegbu\Documents\Bandicam\files\bandicam 2014-07-02 10-55-03-421 - Copy.jpg
5 Files
2 files have hash da8f60e8474f7c89f368e5d6d379dcdc:
C:\Users\Mbaegbu\Documents\Bandicam\bandicam 2014-07-02 10-55-03-421 - Copy.jpg
1 Files
3 files have hash f884c30bfad89a285507d4c381700583:
C:\Users\Mbaegbu\Documents\Bandicam\bandicam 2014-07-16 22-09-14-091 - Copy - Copy.jpg
2 Files
C:\Users\Mbaegbu\Documents\Bandicam\bandicam 2014-07-16 22-09-14-091 - Copy.jpg
3 Files
И что это ваша проблема? – Regent
В чем именно ваша проблема непонятна. Пример был бы хорош, как и файлы, дубликаты и текущее решение. Я получаю это, и я хочу это. – SMA
Извините за это ...... Я обновил сообщение. – emekamba