Member 13931222 Ответов: 1

Как написать java-программу для перечисления дубликатов файлов в двух каталогах(или папках)?


У меня есть 2 каталога или папки. У меня есть несколько файлов в обеих папках, некоторые из них являются дубликатами файлов. Я хочу перечислить эти дубликаты файлов в этих папках. Как написать java-программу для выполнения этой задачи

Что я уже пробовал:

import java.io.File;
 
public class GFG 
{
     static void RecursivePrint(File[] arr,int index,int level) 
     {
         // terminate condition
         if(index == arr.length)
             return;
          
         // tabs for internal levels
         for (int i = 0; i < level; i++)
             System.out.print("\t");
          
         // for files
         if(arr[index].isFile())
             System.out.println(arr[index].getName());
          
         // for sub-directories
         else if(arr[index].isDirectory())
         {
             System.out.println("[" + arr[index].getName() + "]");
              
             // recursion for sub-directories
             RecursivePrint(arr[index].listFiles(), 0, level + 1);
         }
           
         // recursion for main directory
         RecursivePrint(arr,++index, level);
    }

Richard MacCutchan

Считайте все записи в одном каталоге в список. Затем для каждого имени файла в списке посмотрите, существует ли этот файл во втором каталоге.

1 Ответов

Рейтинг:
1

OriginalGriff

Ричард абсолютно прав:

Ричард Маккатчан писал::
Считайте все записи в одном каталоге в список. Затем для каждого имени файла в списке посмотрите, существует ли этот файл во втором каталоге.

И самый простой способ сделать это-отсортировать каждый список, а затем сравнить имена:
если[я] меньше, чем B[Дж], то[я] новое в так увеличить I,
если A[i] равно B[j], то это в обоих случаях, так что инкремент i и j,
другой мудрый B[j] является новым в B, поэтому увеличьте j.


Richard MacCutchan

Какой идиот даст этому 1 голос?

OriginalGriff

Я предполагаю, что кто-то хочет, чтобы его домашнее задание было написано за него :D