Autor Beitrag
Bääääär
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 117



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: Di 26.09.06 21:57 
Versuchs mit Suche im MSDN SHFILEOPERATION. Dazu gibt es auch einiges hier im Forum!

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 300



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 117



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: Mi 27.09.06 16:13 
user profile iconBäääää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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 117



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: Mi 27.09.06 19:37 
user profile iconBäääää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:
ausblenden 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; //dont ask for directory creation
  end;
  Result := SHFileOperation(FileStruct) = 0;
end;

//test
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 150



BeitragVerfasst: Mi 27.09.06 20:14 
user profile iconBäääää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
ausblenden Quelltext
1:
AT 08:00 /EVERY:FR C:\backup.bat					

und folgenden code als C:\backup.bat speichern
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 300



BeitragVerfasst: 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!