![]() |
Re: Bitte mal testen: Programm zum Synchronisieren von Ordne
Eigentlich nicht. :gruebel:
|
Re: Bitte mal testen: Programm zum Synchronisieren von Ordne
Hallo, werds mir frühestens heute Abend mal anschauen, aber jetzt schonmal eine Frage:
Synchronisierst du beide Ordner oder hälst du nur den Zielordner auf dem Stand vom Quellordner ( also Backup )? |
Re: Bitte mal testen: Programm zum Synchronisieren von Ordne
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo :hi:,
ich hab dein Programm mal runter geladen und getestet. Aber es passiert nichts. Glaub ich. Ich hab einen Ordner Test mit 2 Unterordnern a und b angelegt und im Quellverzeichnis 2 Dateien eingefügt. Wenn ich auf Dateiliste klicke sehe ich den Screen1. Wenn ich auf Abgleichen klicke passiert nichts. :gruebel: Ist das so gewollt? :mrgreen: MfG freak |
Re: Bitte mal testen: Programm zum Synchronisieren von Ordne
Ich halte nur den Zielordner auf dem Stand vom Quellordner (bis jetzt). Ich habe jetzt einen USB Stick, auf dem ich meine Dateien schnell mal zwischen sichere, aber ich sie eigentlich niergens wo anders bearbeite. jetzt hatte ich das Problem, dass ich nicht immer die Ordner auf dem Stick komplett löschen und alles kopieren wollte. Ich habe mir bisher mit einem Batch-Skript geholfen, nur damit lassen sich keine leeren Ordner löschen, deswegen habe ich das Projekt wieder rausgekramt. Aber man könnte es bestimmt so erweitern, dass man auch eine komplette Synchronisation implementiert. Kommt eventuell im nächsten Schritt oder so.
|
Re: Bitte mal testen: Programm zum Synchronisieren von Ordne
Zitat:
Zitat:
Bitte aufmerksam lesen: ![]() |
Re: Pegasus: Einfaches backup Programm
Sodele. Die erste funktionierende Version ist da. Siehe Anhang im ersten Posting. Deswegen wandert dieser Thread auch nach Freeware. Wenn es weitgehend fertig ist, werde ich wohl OpenSource draus machen.
|
Re: Pegasus: Einfaches backup Programm
wäre ich gestern nich so müde gewesen hätt ich dir noch geholfen.. naja :)
jedenfalls cool das du es geschafft hast. ich kann das teil sehr gut gebrauchen und werde das ganze dann auch noch nach kylix übersetzen und das dann auch hier posten (mit bin) das dann als commandozeilen prog ohne librarys auskommt natürlich nur mit deiner erlaubnis.. darf ich? ;) achja Zitat:
deshalb wenn, dann abschaltbar oder in extra version bitte :) |
Re: Pegasus: Einfaches backup Programm
Zitat:
Delphi-Quellcode:
und
procedure FindFilesToCopy(RootFolder: string; Mask: string = '*.*'; Recurse:
Boolean = True); var SR: TSearchRec; s1, s: string; begin Application.ProcessMessages; if bCanceled then Exit; // Implementation bis einschließlich Delphi 4 if RootFolder = '' then Exit; if AnsiLastChar(RootFolder)^ <> '\' then RootFolder := RootFolder + '\'; // Implementation ab Delphi 5 RootFolder := IncludeTrailingPathDelimiter(RootFolder); // * * * * * // nur bis einschließlich Delphi 4 benötigt if Mask = '' then Mask := '*.*'; // * * * * * if Recurse then if FindFirst(RootFolder + '*.*', faAnyFile, SR) = 0 then try repeat if SR.Attr and faDirectory = faDirectory then // --> ein Verzeichnis wurde gefunden // der Verzeichnisname steht in SR.Name // der vollständige Verzeichnisname (inkl. darüberliegender Pfade) ist // RootFolder + SR.Name if (SR.Name <> '.') and (SR.Name <> '..') then FindFilesToCopy(RootFolder + SR.Name, Mask, Recurse); until FindNext(SR) <> 0; finally FindClose(SR); end; if FindFirst(RootFolder + Mask, faAnyFile, SR) = 0 then try repeat if SR.Attr and faDirectory <> faDirectory then begin s1 := copy(RootFolder, length(SourcePath) + 2, length(RootFolder)); s := BackupPath + '\' + s1 + SR.Name; if (MD5_Hash2String(HashForFile(AnsiLowerCase(RootFolder + SR.Name))) <> MD5_Hash2String(HashForFile(AnsiLowerCase(s)))) or (not FileExists(s)) then begin slFilesToCopy.Add(RootFolder + string(SR.Name)); end; end; until FindNext(SR) <> 0; finally FindClose(SR); end; end;
Delphi-Quellcode:
Mein Fehler war wohl, dass ich mit dem Dateidatum gearbeitet habe und da etwas schief gegangen ist. Ich gehe jetzt über den Hash.
procedure FindFilesToDelete(RootFolder: string; Mask: string = '*.*';
Recurse: Boolean = True); var SR: TSearchRec; s: string; s1: string; s2: string; Index: Integer; begin Application.ProcessMessages; if bCanceled then Exit; // Implementation bis einschließlich Delphi 4 if RootFolder = '' then Exit; if AnsiLastChar(RootFolder)^ <> '\' then RootFolder := RootFolder + '\'; // Implementation ab Delphi 5 RootFolder := IncludeTrailingPathDelimiter(RootFolder); // * * * * * // nur bis einschließlich Delphi 4 benötigt if Mask = '' then Mask := '*.*'; // * * * * * if Recurse then if FindFirst(RootFolder + '*.*', faAnyFile, SR) = 0 then try repeat if SR.Attr and faDirectory = faDirectory then // --> ein Verzeichnis wurde gefunden // der Verzeichnisname steht in SR.Name // der vollständige Verzeichnisname (inkl. darüberliegender Pfade) ist // RootFolder + SR.Name if (SR.Name <> '.') and (SR.Name <> '..') then FindFilesToDelete(RootFolder + SR.Name, Mask, Recurse); until FindNext(SR) <> 0; finally FindClose(SR); end; if FindFirst(RootFolder + Mask, faAnyFile, SR) = 0 then try repeat if SR.Attr and faDirectory <> faDirectory then begin s1 := copy(RootFolder, length(SourcePath) + 2, length(RootFolder)); s := BackupPath + '\' + s1 + SR.Name; s1 := copy(Sourcepath, 4, length(Sourcepath)); Index := pos(AnsiLowerCase(s1), AnsiLowerCase(BackupPath)); s2 := copy(RootFolder, Index, length(RootFolder)); s := copy(Sourcepath, 0, 3) + s2 + string(SR.Name); if not FileExists(s) then begin slFilesToDelete.Add(RootFolder + SR.Name); end; end; until FindNext(SR) <> 0; finally FindClose(SR); end; end; Zitat:
Zitat:
|
Re: Pegasus: Einfaches backup Programm
Version: 0.1.0.2 vom 2006-06-02@12:00
Selber einen Bug gefunden. :roll: Download: Siehe erste Posting. |
Re: Pegasus: Einfaches backup Programm
Hallo :hi:,
Wenn ich Dateien abgleichen drücke, obwoehl keine Dateiem vorhanden sind, bekomme ich eine Fehlermeldung. Kannst du nicht den Button dann einfach wieder aus machen? Ein automatisches "Dateiliste" drücken nach dem Abgleichen wäre auch nicht schlecht. Mir ist es passiert, das ich den ZielOrdner = dem QuellOrdner gesetzt hab. Da wäre ein kleiner Hinweis nicht schlecht. :mrgreen: Vielleicht noch eine kleine Zeichenlegende/erklärung dazu. ;) Was mir noch aufgefallen ist, das Programm blinkt dauernd in der Taskleiste auf. :gruebel: Wenn man den Quell/Zielordner schon gesetzt hat und den Opendialog öffnet und wieder abbricht ist der alte Pfad wieder weg. Das muss doch nicht sein, oder? Kannst du dir vielleicht die Ordnerpfade irgendwo merken? Ich bin es langsam leid die immerwieder zu suchen. :drunken: Ich finde gut, das es nicht in beide Richtungen funktioniert, weil man dann im Quellverzeichnis ausversehen Daten löschen kann. Ansonsten ein sehr schönes Programm. MfG freak |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:57 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