Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Backupper 0.23.15.1539 - Tool zum sichern kompletter Ordner (https://www.delphipraxis.net/78898-backupper-0-23-15-1539-tool-zum-sichern-kompletter-ordner.html)

C.Schoch 12. Okt 2006 20:24


Backupper 0.23.15.1539 - Tool zum sichern kompletter Ordner
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hi,

Ich möchte euch mein erstes Projekt vorstellen. Es dient zur Sicherung kompletter Ordner.
Für Feedback und Anregungen wäre ich euch dankbar.

Features:
  • Vergleichen der Dateien mittels MD4 oder Änderungsdatum und Größe.
  • Erkennen von verschobenen Dateien.
  • Erkennen von umbenannten Dateien.
  • Schließen einer auf die Dateien zugreifenden Anwendung (vor dem Backup).
  • Starten Anwendung nach dem Backup.
  • Verarbeitung der Unterordner auswählbar.
  • Verarbeitung auf bestimmte Dateiendungen beschränkbar.
  • Addition der Zieldateien möglich (nichts wird gelöscht)
  • Anlegen von Jobs.
  • Direkte Fehleranzeige nach abarbeiten der Jobs.
  • DualCore fähig.
  • Zweisprachig.
  • Logging.
  • Trayicon.
  • Autostart.
  • Zeitmanager.
  • Jobs einzeln zu und abschaltbar (Ein).
  • Parameter:
    • "-shutown" = Herunterfahren nach dem Backup.
    • "-auto" = Sofort nach dem Öffnen ausgewählte Jobs starten.
    • "-close" = Programm nach dem Backup schliesen.
    • "-forum" = Speichern der Settings im Programmverzeichnis.
Alle bisherigen Änderungen:
Version 0.23.15.1539:
  • Beim setzen des Protokollordners wird immer "Backupper\" hinzugefügt : entfernt
  • Über Dialog ab der mitte Scrollen
  • Manchmal werden Dateien nicht richtig aktualisiert : behoben Problem mit der Berechnung des Fortschritts.
  • Manchmal werden nicht mehr vorhandene Ordner nicht gelöscht : behoben Problem beim einlesen der Ordner
  • Updatescript kann zu Nebenwirkungen führen : Update geändert, wird jetzt über ein Selbstextrahierendens Archiv
  • Verschobene Dateien werden nicht immer korrekt erkannt
  • Wenn Qellordner nicht verfügbar wird das Backup nicht durchgeführt
  • Auswahl ob Dateien aus bdem Ziel gelöscht werden sollen
  • Option Anwendung neu starten nach Ende des Jobs
  • Neuer Hinzufügen / Ändern Dialog
  • Nun sollten nur noch exklusiv geperrte Dateien nicht kopiert wedrden können.
  • Es kann nun eine Fehlerliste für jeden Job einzeln zur Laufzeit angezeigt werden
  • Neue Vergleichsmethode( Filetime & Filesize) verfügbar
  • Wenn auf Quelldatei kein Zugriff besteht bleibt die Ursprüngliche Zieldatei erhalten
  • Nun sollten wirklich nur noch exklusiv gesperrte Dateien nicht kopiert werden können
  • Die einzelnen Jobs können jetzt, dank jmits Idee auch mit Namen versehen werden
  • Die maximal Ignorierte Zeitabweichung zwischen Quell und Zieldatei ist nun einstellbar.
  • Minimize to Tray
  • Zeitmanager
  • Starten mit Windows
  • Das Logfile wird jetzt direkt auf die Festplatte gestreamt und benötigt somit keinen Arbeitspeicher. Nebenefekt: schliesen geht schneller.
  • Beim klicken auf "Ja" nach Meldung "Kein Job vorhanden! Wollen sie einen Job hinzufügen?" wird jetzt wieder eine Aktion ausgeführt
  • Exception beim Schliesen ohne Jobs beseitigt
  • Fehler in der Sprachdatei beseitigt
  • Button zum Löschen der automatisch angelegten Dateien
  • Timer Option Alle x Minuten / Stunden / Tage / Monate
  • Beim Herunterfahren des PCs durch das Programm wird abgefragt was ob ein Neustart durchgeführt werden soll
  • Die Spalten de ListView können einzeln aus und Eingeblendet werden
  • Im Log wird nun beim kopieren/verschieben Quelle und ziel angezeigt
  • In einer Spalte des ListView wird Datum und Uhrzeit der letzten Durchführung angezeigt.
  • Rücksicherungsfunktion (Jobs können auch in anderer Richtung ausgeführt werden)
  • Skiplist hinzugefügt
  • Verbose Bit gegen Level System ersetzt
  • Problem mit " " " bei zu beendenden Anwendungen behoben
  • Fehler beim Sortieren durch Logging behoben
  • Erweitertes Progressfenster eingenaut
  • Fortschritt wird auch im Hint des TNA angezeigt
  • Überwachung für Verzeichnisse hinzugefüht
  • Exception beim Aufruf des Einstelldialogs beseitigt
  • Exception beim sortieren, die gelegentlich auftrat beseitigt
  • Bestimmung der leeren Ordner optimiert

Getestet Unter Windows XP und Windows Vista.
Einstellungen werden ohne Parameter "-forum" unter "C:\Dokumente und Einstellungen\$Benutzername$\Anwendungsdaten\Backupper\" gepeichert

Hador 12. Okt 2006 21:06

Re: Backupper
 
:-D Ich hatte grad geplant, mir selber sowas zu machen.

Was mir aufgefallen ist:
  • Pfadauswahldialog unter Einstellungen bei Protokollierung fahlt
  • Mach den "Über"-Dialog statisch oder beginne mit dem Text zumindest in der Mitte, denn so daueert das ganze ewig.
  • Wenn ich (kein Job erstellt) auf Start klicke, dann Job hinzufügen wähle, dann jedoch doch abbreche wird das Programm dennoch beendet.
  • Erstelle einen Button "Job hinzufügen". Ich hab erst etwas gebraucht, bis ich diese Funktion im Kontextmenü gefunden habe. Andere finden sie so evtl. garnicht.
  • die Schrift im Dialog "Job hinzufügen" finde ich zu groß geraten
  • Mach im Dialog "Job hinzufügen" lieber ein kleinen Button hinter das jeweilige Editfeld, als den Pfadauswahldialog hinter einem Doppelklick zu verstecken.
  • Du hast keine Angaben dazu gemacht, wozu die Option "Ein" gut ist. Und ich hab's auch bisher nicht herausgefunden.
  • Du hast keine Angaben dazu gemacht, was bei Anwendung eingetragen werden soll. Wird die dort angegebene Anwendung nach beendigung des Backup-Vorgangs gestartet oder wozu dient sie?

Das sind erstmal die ersten Sachen, die mir aufgefallen sind. :mrgreen:

EDIT: Verdammte Rechtschreibfehler

EDIT2:

Und kannst du die Programmeinstellungen nicht im Programmverzeichnis speichern?
Denn ich finde es nicht grad schön, hier in der DP Software zu testen, dann aber erstmal lange nach irgendwelchen Dateien, die die Programme ohne mein Wissen auf meinem Computer speichern zu suchen und diese wieder zu entfernen.

Ultimator 12. Okt 2006 21:18

Re: Backupper
 
Programmeinstellungen im Programmverzeichnis sind sch...lecht ;)
Arbeitet man als Benutzer, hat man dort keine Schreibrechte.
Sowas gehört normalerweise nach ..\Dokumente und Einstellungen\<Benutzername>\Anwendungsdaten\<Prog rammname>

Hador 12. Okt 2006 21:21

Re: Backupper
 
Wenn man dort Dateien anlegt, sollte man aber entweden eine möglichkeit diese automatisch zu entfernen (bspw. eine Batchdatei) anbieten oder aber den Benutzer zumindest darauf hinweisen, dass dort Daten gespeichert werden.

C.Schoch 13. Okt 2006 20:21

Re: Backupper
 
Hi,
Mist das mit dem hinzufügen der Jobs wollte ich schon längst einfacher machen :wall: .

Ich hab mal ein paar der Anregungen im Programm umgestetzt und gleich die neue Version hochgeladen.

[+] Anhalten/Fortsetzen Button
[+] Buttons für Opendialoge
[+] Main Menü Eintrag "Jobs"
[+] Parameter -Forum[*] Kontextmenu nur Deaktivieren statt Ausblenden[*] kleinere Schrift im Hinzufügen/Ändern Dialog
[-] Job Hinzufügen abbrechen schließt das Fenster

Die Speicherung der Settings ist immer ein Streitthema, aber der Button oder etwas ähnliches ist vieleicht keine schlechte idee.
Die Intuitive Bedienung ist gar nicht so leicht zu realisieren als ich dachte.

Hador 14. Okt 2006 15:29

Re: Backupper
 
So ich bin's mal wieder :wink:

Deine neue Version gefällt mir doch schon ein wenig besser.
Jedoch habe ich eben mal einen Backupvorgang durchgeführt und es funktionierte leider doch nicht ganz so wie es sollte.

Nunja zuerst mal noch einen Teil meiner alten Anmerkungen. Einiges hast du ja schon geändert:
  • Mach den "Über"-Dialog statisch oder beginne mit dem Text zumindest in der Mitte, denn so daueert das ganze ewig.
  • Du hast keine Angaben dazu gemacht, wozu die Option "Ein" gut ist. Und ich hab's auch bisher nicht herausgefunden.
  • Du hast keine Angaben dazu gemacht, was bei Anwendung eingetragen werden soll. Wird die dort angegebene Anwendung nach beendigung des Backup-Vorgangs gestartet oder wozu dient sie?

Punkt 2, also wofür das "Ein" bzw. "On" gut ist, habe ich mitlerweile herausgefunden. Punkt 3 (Anwendung) jedoch noch nicht.

Dann kommt folgend erstmal ein gravierender Bug, der mir aufgefallen ist:
(Mein Handeln kurz zusammengefasst)

2 Ordner erstellt: "src" und "dst".
In "src" einige Dateien kopiert.
Job erstellt.
Backup gestartet.
-> Alles war korrekt kopiert worden.
Datei in "src" geändert.
Bachup gestartet.
Datei wure nicht durch die neue ersetzt.

Alte Orientation.txt:
Code:
1 Normal
2 Mirrored
...
Neue Orientation.txt:
Code:
1 Normax
2 Mirrored
...
Dein Programm scheint also lediglich die Dateigröße, nicht jedoch den Inhalt der Dateien zu prüfen.

Weitere Punkte:
  • So schön ist der Job hinzufügen-Dialog immer noch nicht (Doppelte Ränder, ...)
  • Wozu die Datei "Update.cmd"? Wenn ich die Datei ausführen würde, würde Das Programm gelöscht. Eine Backupper2.exe gibt es nicht.
  • Wenn ich einen Pfad für die Logdatei auswähle, wird automatisch noch "Backupper\" angehänt. Wiso?
  • Die Daten werden immernoch im Anwenderverzeichnis gespeichert und es gibt keine Möglichkeit a) dies zu unterbinden oder b) diese automatisch wieder zu löschen.

jmit 14. Okt 2006 16:24

Re: Backupper
 
Hallo,

so intensiv wie die anderen habe ich Dein Programm noch nicht getestet, aber was wir aufgefallen ist, was für eine Anwendung muss ich beim Erstellen eines neuen Jobs angeben und wofür ist diese Eingabe?

Gruß Jörg

C.Schoch 14. Okt 2006 18:00

Re: Backupper
 
Hi,
Tschuldigung :oops: hab die Erklärungen der Änderungen vergessen.

@Hador
  • "Über"-Dialog statisch steht schon in der Todo.
  • Die Option Ein ist zum aktivieren und deaktivieren einzelner Jobs.
  • Update.cmd ist ein Hilfscript für das Onlineupdate.
  • Es gibt eine Möglichkeit das Speichern im Anwenderverzeichniss zu unterbinden du Benutzt den Startparameter "-forum". Button zum löschen der Dateien ist in der Todo.
  • Gefallen tut er mir auch nicht aber um den zu ändern brauch ich etwas mehr Zeit.
  • Warum ich an den Pfad für die Logdatei automatisch Backupper hänge weis ich auch nicht mehr :gruebel: .
  • Eigentlich mache ich einen MD4 Hash von jeder Datei und vergleiche diese. Ich werd mal versuchen das zu reproduzieren.

@Hador & jmit
Bei Anwendung kann eine Anwendung eingetragen werden die vor der Durchführung des Jobs geschlossen werden soll, Zweck: unnötige Zugriffsfehler verhindern.

so jetzt hab ich ja wieder genug zu tun. :coder:

Hador 14. Okt 2006 19:06

Re: Backupper
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von C.Schoch
Update.cmd ist ein Hilfscript für das Onlineupdate.

Ich habe es mir fast gedacht. Aber der gemeine Anwender guckt sich so eine Datei meist nicht an, sondern macht einfach den fatalen Doppelklick. Schreib dir doch einfach ein kleines Programm, das einfach erst prüft, ob eine neue Datei existiert.
Delphi-Quellcode:
program Update;

uses
  SysUtils;

begin
  if FileExists('Backupper2.exe') then
  begin
    DeleteFile('Backupper.exe');
    RenameFile('Backupper2.exe', 'Backupper.exe');
  end;
end.
Oder schreib dir gleich ein extra Programm, was für den kompletten Updatevorgang zuständig ist.
Zitat:

Zitat von C.Schoch
[*]Eigentlich mache ich einen MD4 Hash von jeder Datei und vergleiche diese. Ich werd mal versuchen das zu reproduzieren.

Ich habe hier mal einen Teil der Ordner angehängt. Inclusive md5 Hash der beiden Dateien, der - wie zu erwarten - unterschiedlich ist.

Zitat:

Zitat von C.Schoch
Bei Anwendung kann eine Anwendung eingetragen werden die vor der Durchführung des Jobs geschlossen werden soll, Zweck: unnötige Zugriffsfehler verhindern.

Schreib das am besten per Hint o.ä. dabei

C.Schoch 15. Okt 2006 02:13

Re: Backupper
 
Hi,

@Hador
bezüglich des Updates hab ich mir auch schon überlegt das Script einfach bei Bedarf zu erstellen und dannac wieder zu löschen um diese Problematik zu umgehen, denn mit dem Miniprogramm kann das auch passieren. Man könnte natürlich das Miniprogramm auch einkopilieren und bei Bedarf in den Speicher entpacken aber das ist mir zu umständlich.

Das Problem lag nicht am Hash oder Vergleich es lag an der Berechnung des Fortschritts warum es da keine Exception gehagelt hat kapier ich gerade auch nicht Vieleicht ligt es daran, dass ich die Berechnung innerhalb von "trunk" ausführe.
:cat:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:00 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz