Zum Inhalt springen

Empfohlene Beiträge

Geschrieben
ich suche ein tool das mit die Dateien in 2 Verzeichnissen vergleicht und dann ausspuckt welche unterschiedlich sind.
Dafür solltest du erstmal definieren, wann ein Verzeichnis für dich unterschiedlich ist.

(1) Wenn es die gleiche Anzahl an Dateien beinhaltet?

(2) 1 und alle Dateien müssen die gleichen Namen haben?

(3) 2 und alle Dateien müssen die gleichen Inhalte haben?

Geschrieben

Es sit die gleiche anzahl der Dateien.

Der Inhalt ist mir egal, ich will die unteschieden in den namen wissen.

z.b

Ordner 1 Ordner2

start.bat start2.bat = Meldung Start.bat nicht in Ordner 2

Geschrieben

Tataaa....mal wieder ein Job für den Total Commander ;-)

Vorgehensweise :

Linke Seite in den Ordner A wechseln

Rechte Seite in den Ordner B wechseln

Dann -> Befehle -> Verzeichnisse synchronisieren

Kannst zusätzlich wählen :

-Unterverzeichnisse vergleichen

-nach Inhalt (binärer Vergleich)

-Datum Ignorieren

- Asymetrisch

Du bekommst dann eine Liste die dir zeigt, welche Dateien gleich, ungleich bzw. welche von A nach B bzw. von B nach A kopiert werden müssen.

Musst bloß vorsichtig bei der Option "Asymetrisch" sein.

Das bedeutet :

Angenommen du hast in Ordner A die Dateien 1,2 und 3

In Ordner B hast du 1,2,3,4. Synchronisiertst du von A nach B und hast die Option Asymetrisch gewählt, löscht er in Ordner B die Datei 4.

Klingt evtl. verwirrend ;-), ist aber relativ leicht zu durchschauen.

Download findest du hier : http://www.ghisler.com/ddownload.htm

Geschrieben
Es sit die gleiche anzahl der Dateien.

Der Inhalt ist mir egal, ich will die unteschieden in den namen wissen.

Voila!


package de.perdian.test;


import java.io.File;

import java.util.Collections;

import java.util.HashSet;

import java.util.Set;


public class ListDirectoryDifferences {


  public static void main(String[] args) {

    File d1                 = new File(args[0]);

    File d2                 = new File(args[1]);

    Set<String> fileNames1  = ListDirectoryDifferences.createFileNameSet(d1);

    Set<String> fileNames2  = ListDirectoryDifferences.createFileNameSet(d2);

    for(String fileName1 : fileNames1) {

      if(!fileNames2.remove(fileName1)) {

        System.out.println("Datei " + fileName1 + " existiert nur in Verzeichnis " + d1.getAbsolutePath());

      }

    }

    for(String remaningFileName : fileNames2) {

      System.out.println("Datei " + remaningFileName + " existiert nur in Verzeichnis " + d2.getAbsolutePath());

    }

  }


  private static Set<String> createFileNameSet(File directory) {

    File[] files            = directory.listFiles();

    if(files == null) {

      return Collections.emptySet();

    } else {

      Set<String> result    = new HashSet<String>(files.length);

      for(File file : files) {

        result.add(file.getName());

      }

      return result;

    }

  }


}

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...