Autor Beitrag
ck3009
Hält's aus hier
Beiträge: 13

Win95, Win98, Win2000 Prof.
Delphi 3 Prof., 7,
BeitragVerfasst: Mi 24.09.03 11:07 
Hallo developers,

ich möchte ein Programm schreiben, dass mir es ermöglicht 2 ordner zu synchronisieren. Der eine Ordner soll z.B. sich auf einem Lap-Top befinden und der andere auf einem Server. habt ihr da vielleicht ne lösung.

???
mb
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 185



BeitragVerfasst: Mi 24.09.03 11:27 
Da gibt es im OpenSource-Sektor schon einiges... Ein Blick zu rsync von Unix/Linux könnte da sehr viele Anregungen geben - Sourcen sind ja mit dabei (eben nur nicht Delphi-Sourcen :? )

_________________
Gruß,
MB
ck3009 Threadstarter
Hält's aus hier
Beiträge: 13

Win95, Win98, Win2000 Prof.
Delphi 3 Prof., 7,
BeitragVerfasst: Mi 24.09.03 12:04 
Titel: OK!?
Sorry mb das sagt mir jetzt nich viel. Ich habe in der delphi-hilfe unter Kopieren:Dateien einen quelltext gefunden
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TFMForm.ConfirmChange(const ACaption, FromFile, ToFile: string); 
begin 
if MessageDlg(Format('%s %s to %s?', [ACaption, FromFile, ToFile]), 
mtConfirmation, [mbYes, mbNo], 0) = mrYes then 
begin 
if ACaption = 'Move' then 
MoveFile(FromFile, ToFile) 
else if ACaption = 'Copy' then 
CopyFile(FromFile, ToFile) 
else if ACaption = 'Rename' then 
RenameFile(FromFile, ToFile); 

FileList.Update; 
end
end;

mit dem müsste das kopieren schon mal klappen. doch wie gebe ich den pfad für fromfile bzw tofile ein. :cry:

Moderiert von user profile iconTino: Delphi-Tasg hinzugefügt.
mb
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 185



BeitragVerfasst: Mi 24.09.03 12:30 
Also, das Kopieren von Dateien kannst Du ganz einfach mit

ausblenden Quelltext
1:
CopyFile(existingfile, newfile, false)					


erledigen, wobei du für existingfile den Dateipfad der Quelldatei eingibst, bei newfile den Dateipfad der Zieldatei. Der dritte Parameter regelt, was passieren soll, wenn die Zieldatei bereits besteht. false sagt in diesem Fall, das die Datei überschrieben werden soll. Wenn true dort steht, würde der Kopiervorgang in diesem Fall abgebrochen werden.

Um eine Synchonisation hin zu bekommen musst Du - bevor Du eine Datei ins andere Verzeichnis kopieren kannst - prüfen, welche Datei geändert wurde. Dazu kannst Du die Größen beider Dateien vergleichen => das geht z.B. mit FileSize(), ist aber nicht die sicherste Methode. Ansonsten könntest Du die Datei öffnen und auslesen und dann Bitweise vergleichen => oder in einen Buffer lesen und diesen im Speicher vergleichen.

Diesen Prozess - Dateien vergleichen, dann kopieren - musst Du dann für alle Dateien in einem Verzeichnis durchführen.

Alle Dateien findest Du z.B. über FindFirst / FindNext. Sieh dazu einfach mal in der Delphi-Hilfe nach.

_________________
Gruß,
MB
ck3009 Threadstarter
Hält's aus hier
Beiträge: 13

Win95, Win98, Win2000 Prof.
Delphi 3 Prof., 7,
BeitragVerfasst: Mi 24.09.03 12:37 
Titel: Super danke M
ich danke dir. ich werde es ma testen. ich werde die schreiben ob es klappt oder nicht. und wenn ich noch fragen habe. wenn es dich nicht stört.
Bin eben noch richtiger anfänger :D

bis dann

ck3009
mb
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 185



BeitragVerfasst: Mi 24.09.03 13:10 
nein, es stört hier denke ich keinen => frag ruhig. dazu ist das forum ja da :)

_________________
Gruß,
MB
ck3009 Threadstarter
Hält's aus hier
Beiträge: 13

Win95, Win98, Win2000 Prof.
Delphi 3 Prof., 7,
BeitragVerfasst: Mo 29.09.03 12:10 
Titel: es klappt einfach nicht
wenn einer von euch solch ein programm schon geschrieben hat schickt es mir dann bitte rüber. danke
mb
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 185



BeitragVerfasst: Mo 29.09.03 17:56 
Na ja, nun mal langsam. Das ist hier ja kein Shop, sondern ein Programmierforum. Du sollst es ja selber machen. Tipps kannst Du dazu haben, aber wir sind (ich hoffe, die anderen stimmen zu) keine Foren-Auftragsprogrammierer.

Ich habe ja schon geschrieben, dass es zu Deinem Problem einiges im OpenSource-Bereich gibt. Z.B. Ist so ein Tool, das auch ziemlich ausgereift ist, in Unix/Linux enthalten. Dies heißt "rsync". Eine kostenlose Linux-Distribution findest Du in jeder zweiten PC-Zeitschrift und die Sourcen von einzelnen Tools auch sonst im Netz - ganz einfach.

Wo ist also das Problem? Ein bißchen Mühe musst Du schon selbst investieren.

_________________
Gruß,
MB
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Mo 29.09.03 18:04 
verry simple:
shFileOperation() macht das alles automatisch. Sofern Windows :-)

grez
msch

_________________
ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?