Synchronisieren von Dateien

Samarek

Aktives Mitglied
Hallo zusammen,

ich hab vor mir ein Programm zu schreiben das Verzeichnisse, inklusive aller Unterverzeichnisse, miteinander abgleicht und dann Dateien hin und her kopiert und zwar so dass am Ende in beiden Verzeichnissen die aktuellsten Dateien liegen.

Also z.B. von meinem USB-Stick und meiner Festplatte, so dass ich halt einen Sicherungsordner habe den ich mit dem Programm auf meiner Festplatte erstellen kann und dann in der Zukunft immer nur die veränderten Dateien kopiert, sofern die letzten Änderungen auf der Festplatte weiter zurückliegen als die auf meinem USB-Stick.
Einerseits bin ich mir nicht so ganz sicher wie ich mit JAVA das kopieren von Dateien bewerkstellige und andererseits bin ich mir über die Logik nicht so ganz im klaren. Im Moment kopiert das Programm alle Dateien aus allen Unterordnern vom USB-Stick in alle Unterordner auf der Festplatte und ich komme nicht so ganz darauf wie die Logik richtig sein muss.

Gruß & Dank
Samarek
 
Was heisst "verändert" - ich meine nicht für uns Menschen sondern für das Programm?
(Ich kann dir die Frage nicht beantworten, aber versuche herauszufinden, was für Zeitstempel an einer Datei hängen und wie die ausgelesen werden können.)

Dann solltest du herausfinden:

Wie du eine Directorystruktur rekursiv durcharbeiten kannst.

Wie du im Zielordner fehlende Diretories erstellst

Wie du Dateien kopierst.

Ausserdem stelle ich in Frage ob es Sinn macht in beide Richtung anzugleichen, wenn es sich um ein Backup handelt - du wirst nie mehr eine Datei löschen können ;-)
 
Zu der Logik kommt noch die Problematik der Versionen:
Du hast eine Datei A, diese kopierst du auf den Stick. Anschließend wird die Datei A auf dem Rechner verändert UND einige Zeit später auch auf dem Stick.
Was nun? Nach welchem Kriterium willst du entscheiden welche Datei überspielt werden soll?
Du müsstest dann beim Kopieren die CRC-Summe gespeichert halten.
 

Zurück
Oben