Я пытаюсь прочитать все файлы в каталоге, используя JFileChooser, а затем получить размер каждого файла (количество байтов), а затем создать простой хэш.Однако он не возвращает хеш-значение.Кто-нибудь может помочь?
class OpenDirListner implements ActionListener {
public void actionPerformed(ActionEvent e) {
try {
JFileChooser chooser = new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
chooser.showOpenDialog(chooser);
String dirName = chooser.getSelectedFile().getAbsolutePath();
File files = new File(dirName);
File[] fileName = files.listFiles();
String names = "";
if (files != null) {
// iterate over files and directories
for (File next : fileName) {
// Get name
String name = next.getName();
names = names + " \n" + name;
}
}
byte[] bytes = Files.readAllBytes(Paths.get(dirName));
int length = bytes.length;
long total = 0;
// Dump byte array contents and total the values.
for (byte b : bytes) {
total += b * 13;
}
// create a very simple hash (total of byte values, each multiplied by a prime
// number, all of which is multiplied by file size)
total *= length * 997;
JOptionPane.showMessageDialog(null, "Directory Name: " + dirName + "\n Filenames: " + names+);
} catch (Exception a) {
JOptionPane.showMessageDialog(null, "Select a Directory");
}
}
}
При чтении одного файла он работает без проблем, однако не возвращает хеш-значение для ряда файлов в каталоге