| Autor |
Beitrag |
Bääääär
      
Beiträge: 117
|
Verfasst: Di 26.09.06 21:40
Sorry, dass ich jetzt noch ein Thema dazu aufmache, aber ch finde die Lösung nicht so wirklich, auch wenn das Thema oft angesprochen wird:
Ich möchte ein simples Programm basteln, dass wöchentlich eine Sicherheitskopie eines Verzeichnisses macht. Ich habe nur gar keina Ahnung, wie ich das machen soll. Klar, eine einzelne Datei kopieren, ist kein Problem. Ich würde aber gerne ein ganzes Verzeichniss + Unterverzeichnisse kopieren und dabei möglichst den Dateinamen der gerade bearbeiteten Datei und einen Fortschrittsbalken für diese und für den Gesammtfortschritt anzeigen lassen.
Wie kann ich das verwirklichen?
The Bääääär
|
|
wulfskin
      
Beiträge: 1349
Erhaltene Danke: 1
Win XP
D5 Pers (SSL), D2005 Pro, C, C#
|
Verfasst: Di 26.09.06 21:57
Versuchs mit SHFILEOPERATION. Dazu gibt es auch einiges hier im Forum!
_________________ Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Mi 27.09.06 06:51
Du willst das mit "möglichst wenig Aufwand" realisieren? Was verstehst Du darunter? Ich benötige dafür eine Form, diverse Controls (wegen der Progressbar) sowie ca. 20 Zeilen Code. Ist das "möglichst wenig Aufwand"? Im Code steht u.a. "FindFirst", "FindNext" und "FindClose". Eine Prozedur ist rekursiv.
_________________ Na denn, dann. Bis dann, denn.
|
|
Raffo
      
Beiträge: 300
|
Verfasst: Mi 27.09.06 07:57
Schau mal hier nach www.dsdt.info/tipps/...rch=dateien,kopieren
mit ShFileOperation kann man auch ganze Verzeichnisse kopieren, und Fortschrittsbalken etc.
|
|
Bääääär 
      
Beiträge: 117
|
Verfasst: Mi 27.09.06 16:01
Naja, ok, mein problem leigt darin, dass ich die Dateinamen der einzelnen Dateien des Ordners sowie der in den Unterordnern brauche. Also brauche ich eine Schlife, die die einzelnen Dateinmanem herausbekommt und abspeichert.
der Rest ist klar.
|
|
wulfskin
      
Beiträge: 1349
Erhaltene Danke: 1
Win XP
D5 Pers (SSL), D2005 Pro, C, C#
|
Verfasst: Mi 27.09.06 16:13
Bääääär hat folgendes geschrieben: | | Naja, ok, mein problem leigt darin, dass ich die Dateinamen der einzelnen Dateien des Ordners sowie der in den Unterordnern brauche. |
Warum?
Hast du dir überhaupt schon mal angeschaut, was Raffo oder ich dir geschrieben haben?! In der Frage stand, du willst ein Verzeichnis kopieren mit Fortschrittanzeige. Genau das macht es.
Gruß Hape!
_________________ Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
|
|
Bääääär 
      
Beiträge: 117
|
Verfasst: Mi 27.09.06 19:18
Denkst du, ich lese mir das, was andere auf meine Frage hin schreiben nicht durch?
Ich verstehe das aber einfach nicht so wirklich.
|
|
wulfskin
      
Beiträge: 1349
Erhaltene Danke: 1
Win XP
D5 Pers (SSL), D2005 Pro, C, C#
|
Verfasst: Mi 27.09.06 19:37
Bääääär hat folgendes geschrieben: | Denkst du, ich lese mir das, was andere auf meine Frage hin schreiben nicht durch?
Ich verstehe das aber einfach nicht so wirklich. |
Ja, dann sag das doch einfach. Du bist gar nicht auf die Antworten eingegangen?!
Ein Beispiel:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| function CopyDirectory(const AHandle: THandle; const AFrom, ATo: String): Boolean; var FileStruct: _SHFILEOPSTRUCTA; begin FillChar(FileStruct, SizeOf(FileStruct), 0); with FileStruct do begin Wnd := AHandle; wFunc := FO_COPY; pFrom := PChar(AFrom); pTo := PChar(ATo); fFlags := FOF_NOCONFIRMMKDIR; end; Result := SHFileOperation(FileStruct) = 0; end;
if CopyDirectory(Handle, 'C:\test', D:\Test_sicherheit') then ShowMessage('Kopieren beendet!'); |
Gruß Hape!
_________________ Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
|
|
0xCC
      
Beiträge: 150
|
Verfasst: Mi 27.09.06 20:14
Bääääär hat folgendes geschrieben: | Sorry, dass ich jetzt noch ein Thema dazu aufmache, aber ch finde die Lösung nicht so wirklich, auch wenn das Thema oft angesprochen wird:
Ich möchte ein simples Programm basteln, dass wöchentlich eine Sicherheitskopie eines Verzeichnisses macht. Ich habe nur gar keina Ahnung, wie ich das machen soll. Klar, eine einzelne Datei kopieren, ist kein Problem. Ich würde aber gerne ein ganzes Verzeichniss + Unterverzeichnisse kopieren und dabei möglichst den Dateinamen der gerade bearbeiteten Datei und einen Fortschrittsbalken für diese und für den Gesammtfortschritt anzeigen lassen.
Wie kann ich das verwirklichen?
The Bääääär |
ganz einfach: konsole öffnen und folgenden text eintippen
Quelltext 1:
| AT 08:00 /EVERY:FR C:\backup.bat |
und folgenden code als C:\backup.bat speichern
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| @echo off ECHO BACKUP STARTET ECHO ==========================================
set sourcedir=C:\bktest2 set targetdir=C:\bkuptest
set mdate=%date:~8,2%-%date:~3,2%-%date:~0,2% set outputdir=%targetdir%\backup%mdate% ECHO KOPIERE VON %sourcedir% NACH %outputdir% xcopy /E /Y %sourcedir% %outputdir%\ > %targetdir%\%mdate%.log ECHO FERTIG !!! |
dann hast du jede woche einmal ein backup von sourcedir auf targetdir\backup+datum inkl. logfile
|
|
Raffo
      
Beiträge: 300
|
Verfasst: Do 28.09.06 13:27
Das mit ner Batch habe ich auch toll gelöst, er macht mir jeden Tag ne Sicherung meiner wichtigsten Ordner auf die andere FP. Aber "ER" will ja unbedingt ne Fortschrittsanzeige, und das ist per Batch nicht möglich. Außerdem heisst das doch, das der bzw. die Ornder erstmal gescannt werden müssen, um den Fortschritt überhaupt anzeigen zu können.
@Mr. Fragesteller: Willst Du das für deinen privaten Bereich benutzen, oder soll es ein Free- / Shareware Programm werden?
Für den privaten Bereich habe ich mir selbst ne intelligente Batch geschrieben, die ich hier ggf. veröffentlichen kann. Da ist der Fortschritt mir völlig egal, hauptsache er macht es vernünftig!
|
|
|