![]() |
2 Verzeichnisse mit Dateien vergleichen
Hallo zusammen,
ich habe folgendes vor. Ein Programm zu schreiben, dass "Verzeichnis 1" und "Verzeichnis 2" ausliest und miteinadner vergleicht, abhängig welches Änderungsdatum die Datei trägt, dann austauscht. Das Programm öffnet also "Verzeichnis 2" schaut die erste Datei an, z.B. test.jpg, existiert das in "Verzeichnis 1"? Wenn nein, dann soll es dahin kopiert werden. Wenn ja, ist die aktuelle test.jpg in "Verzeichnis 1" älter, wenn ja, dann ersetzten. Hat jemand ein paar Code schnipsel für das auslesen eines Verzeichnisses? Und für das auslesen des Änderungsdatums? Sowie das kopieren und ersetzen? Viel Dank! Eppos |
Re: 2 Verzeichnisse mit Dateien vergleichen
Guck dir mal mein Programm
![]() |
Re: 2 Verzeichnisse mit Dateien vergleichen
Delphi-Quellcode:
Mal als Anregung
function ProcessFiles(sPath1,sPath2:string):longint;
var sr2, sr : TSearchRec; iRes2, iRes : integer; begin result:=0; iRes:=SysUtils.FindFirst(sPath+'*.*', $FF, sr); while iRes=0 do begin if sr.Attr and faDirectory =0 then //no subdirs begin iRes2:=SysUtils.FindFirst(sPath2+sr.name, $FF, sr2); if iRes2=0 then begin //Datei ist im Zielverz. vorhanden //hier vergleich o.ae. implementieren end else begin //datei fehlt im Ziel kopieren end findclose(sr2); end; iRes:=SysUtils.FindNext(sr); end; findclose(sr); end; |
Re: 2 Verzeichnisse mit Dateien vergleichen
@mashutu:
besser auf sr und sr2 achten (so, wie es jetzt ist, gibt's Probleme :zwinker: ) aber zum zweiten FindFirst: FileExists ist auch ganz nett :angel:
Delphi-Quellcode:
function ProcessFiles(sPath1,sPath2:string):longint;
var sr : TSearchRec; iRes : integer; begin result:=0; iRes:=SysUtils.FindFirst(sPath+'*.*', $FF, sr); while iRes=0 do begin if sr.Attr and faDirectory =0 then //no subdirs begin if FileExists(sPath2+sr.name) then begin //Datei ist im Zielverz. vorhanden //hier vergleich o.ae. implementieren end else begin //datei fehlt im Ziel kopieren end end; iRes:=SysUtils.FindNext(sr); end; findclose(sr); end; |
Re: 2 Verzeichnisse mit Dateien vergleichen
Zitat:
(aber für schnelle/einfache Prüfungen könnte man noch die Dateigröße, LastWriteTime und das Archiv-Attribut mit vergleichen) |
Re: 2 Verzeichnisse mit Dateien vergleichen
Zitat:
|
Re: 2 Verzeichnisse mit Dateien vergleichen
So wie ich Dich verstanden habe, willst Du zwei Verzeichnisse synchronisieren und nicht vergleichen.
Für diesen Zweck gibt es bereits eine Menge Programme. |
Re: 2 Verzeichnisse mit Dateien vergleichen
Ein weiteres Programm, das sowas kann und (von meiner einer) in Delphi geschrieben ist:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz