У меня есть метод hexFinder в классе checksumFinder. В hexFinder каждый файл считывается и называется либо хорошим файлом, либо bad. Затем положить в один из двух ArrayLists, listGoodFiles или listBadfiles.Имена файлов не добавляются к ArrayList из другого класса
Оба этих ArrayLists принадлежит к классу checksumGUI в многофайлового метода. Этот метод вызывает hexFinder для каждого файла внутри выбранной папки. Он также выводит сообщение, показывающее, сколько и файлов находились в папке.
Когда я добавляю имя файла в один из ArrayLists, ничего не добавляется.
Вот некоторый код из checksumFinder класса, которые могут быть причиной проблемы
class checksumFinder {
checksumGUI cg = new checksumGUI();
String hexFinder(File currentFile,...){
.... // determine file is good/bad
if (l1 == l2) {
cg.listGoodFiles.add(currentFile.getName());
} else{
cg.listBadFiles.add(currentFile.getName());
}
Вот Многофайловое метод из checksumGUI класса
public void multiFile(JFileChooser inFileName) throws FileNotFoundException, IOException {
checksumFinder cf = new checksumFinder();
ArrayList<String> listTypeErrFiles = new ArrayList<String>();
File folderFile = inFileName.getSelectedFile();
File[] listAllFiles = folderFile.listFiles();
for (int i = 0; i < listAllFiles.length; i++) {
File currentFile = listAllFiles[i];
if (currentFile.isFile() && currentFile.getName().endsWith(".pcf")) {
cf.hexFinder(currentFile, null, null, null);
} else {
listTypeErrFiles.add(currentFile.getName());
System.out.println("-----------------------------");
System.out.println("Incorrect filetype:\n" + currentFile.getName());
System.out.println("-----------------------------\n");
}
}
JTextArea ta = new JTextArea(25, 25);
ta.setText("Folder contains " + listAllFiles.length + " files\n\n"+ "Folder has " +
listGoodFiles.size() + " good files;\n" + listGoodFiles + "\nFolder has " +
listGoodFiles.size() + " bad files;\n" + listBadFiles +"\nFolder has " +
listTypeErrFiles.size() + " file of wrong type;\n" + listTypeErrFiles);
ta.setWrapStyleWord(true);
ta.setLineWrap(true);
ta.setCaretPosition(0);
ta.setEditable(false);
JOptionPane.showMessageDialog(null,
new JScrollPane(ta),"Folder Contents", JOptionPane.INFORMATION_MESSAGE);
}
От того, как у меня есть эта программа много движется между двумя классами. (Я уверен, что это можно было бы сделать лучше, но это единственный способ я знаю, как)
EDIT:
Я уже просмотрел подобные вопросы, как this, но я ничего не нашел было полезным
EDIT:
The (самый последний) код checksumFinder класса можно найти HERE.
Любая помощь очень ценится, спасибо.