Я пытаюсь разработать программу, которая ищет дубликаты файлов с использованием MD5 хэша, он будет сравнивать два хэш-файла для дублирования.Сравнение двух байтовых массивов в java
У меня возникли трудности с сравнением двух файлов после хэширования файлов с хэш-кодом MD5, я продолжаю получать сообщение об ошибке «Java.IO.FileNotFoundException.». Вот мой код, я не знаю, что я делаю неправильно.
////////////////////// It is a GUI Program ////////////////////////
DefaultListModel m = new DefaultListModel(); // List Model for displaying the hash codes
int rval = chooser.showOpenDialog(null); //JFileChooser for selecting files tobehashed
if(rval == JFileChooser.APPROVE_OPTION){
File f = chooser.getCurrentDirectory();
String fs = f + "";
if(!f.isDirectory()){
JOptionPane.showMessageDialog(null, "Supplied Directory does not exist");
}
//display files on the TesxtField component
File[] filenames = f.listFiles();
String fn = Arrays.toString(filenames);
String type = f.isFile() ? "File" : "Directory : ";
long len = f.length();
String all = type +" "+" " + " Length: " + len;
dis.setText(all + "\n");
dis.setText(fn + "\n" + "\n");
//Loops through the file and check sum of the list files
for(File file : f.listFiles()){
String hash;
try {
hash = MD5.asHex(MD5.getHash(file));
////////// Here is where my problems starts, Please help //////////
for(int i = 0; i < hash.length(); i++)
for(int j = i + 1; j < hash.length(); j++){
File[] f1 = new File[i];
File[] f2 = new File[j];
boolean check = MD5.hashesEqual(MD5.getHash(new File(Arrays.toString(f1))),MD5.getHash(new File(Arrays.toString(f2)))); //compares the byte of files
System.out.println(check);
m.addElement(hash);
task.setModel(m);
}
}catch (IOException ex) {
JOptionPane.showMessageDialog(null, ex);
}
}
'java.io.FileNotFoundException' предполагает, что файл, который вы пытаетесь прочитать, не найден. Какой файл вы пытаетесь прочитать? Вы подтвердили, что он существует (и у вас есть разрешения на его чтение)? Что делает 'new File (Arrays.toString (f1)). GetAbsolutePath()' return? – yshavit
Линии, где ваши проблемы вызывают _no_ смысл. Вы создаете массив файлов с размером 'i', преобразовывая этот пустой массив в строку, а затем рассматривая это как новый файл !? –
@ yshavit Я пытаюсь прочитать хеш-значение и сравнить их для дубликатов. – emekamba