Ява Для Поиска Дубликатов Файлов
Всем привет,
Поэтому кто-то предложил мне сделать приложение, которое будет перечислять дубликаты файлов в текущем рабочем каталоге.
В конце концов он даст вам выбор, что вы можете сделать с дубликатами файлов, но сейчас он просто перечислит их.
Я использую Java (по выбору), и я написал около 50 строк кода для этого. Это заняло у меня около 20 минут, и я провел тест внутри eclipse и получил исключение InputMismatchException. Однако я правильно понимаю, когда приложение запускается. Поэтому я пошел дальше и скомпилировал проект, чтобы протестировать его в командной строке, и прямо при запуске (используя java-jar Duplicates.jar) там написано:
Нет главного атрибута манифеста, в Duplicates.jar
Теперь я думаю, что это было что-то, что пошло не так, когда я компилировал, я просто хочу выяснить, почему или как я получаю исключение InputMismatchException. Он говорит, что это происходит на линиях 17 и 46. Ниже приведен мой код, у меня есть комментарии к строкам 17 и 46.
import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class DuplicateFileRemover { public static boolean CompareFiles(File x, File y) { try { Scanner xs = new Scanner(x); Scanner ys = new Scanner(y); boolean result = true; while (result == true) { if (xs.nextByte() != ys.nextByte()) { // Line 17 result = false; } return result; } } catch (FileNotFoundException e) { System.out.println(e.getMessage()); } return false; } public static void main(String[] args) { File dir = new File("."); File[] fileList = dir.listFiles(); for (int x = 0; x < fileList.length; x++) { for (int y = x+1; y < fileList.length; y++) { if (CompareFiles(fileList[x], fileList[y])) { // Line 46 System.out.println(fileList[x]); } } } } }
Может ли кто-нибудь увидеть проблему с моим кодом? Поскольку я имею дело с файлами, я знал, что мне, вероятно, нужно поймать возможное исключение FileNotFound.
Опять же, как я уже говорил, пользовательский ввод не требуется, приложение работает исключительно на получение файлов в текущем рабочем каталоге.
Пожалуйста помочь.
Richard MacCutchan
Ваша процедура сравнения проверяет только первый байт любых файлов, поэтому все ваши результаты, скорее всего, будут неверными. Вам также не нужно конвертировать его в jar-файл, просто запустите класс, созданный компилятором.
Gigabyte Giant
Знаете ли вы, почему в строках 17 и 46 я получаю исключение InputMismatchException?