Hallo ihr lieben!
Bin neu hier und hab gleich ne Frage...
Ich möchte ein Sicherungsprogramm schreiben welches bestimmte Ordner in einen anderen kopiert. Dazu wird ein Ordner im Format Laufwerk:\DDMMYYYY\ erzeugt und in diesen sollen die Verzeichnisse kopiert werden. ich hab mir dazu mehrere Beispiele angesehen und daran eine eigene Kopier-funktion gebastelt. Wird diese allerdings ausgeführt, kommt eine Fehlermeldung mit der ich nicht wirklich viel anfangen kann.
Zitat: |
Zugriffsverletzung bei Adresse 77E5A918 in Modul 'kernel32.dll'. Lesen von Adresse 000D0000. |
Hier meine Kopier-Funktion
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38:
| function Kopieren( aWnd: HWND; aOperation: UINT; aFrom:Tstrings; aTo: String; aFlags: FILEOP_FLAGS ): Integer; var I: Integer; FromPath, ToPath: string; SHFileOpStruct: TSHFileOpStruct; begin FromPath := ''; for I := 0 to aFrom.Count - 1 do FromPath := FromPath + aFrom.Strings[I] + #0; FromPath := FromPath + #0;
with SHFileOpStruct do begin Wnd := aWnd; wFunc := aOperation; pFrom := PChar(FromPath); fFlags := aFlags; end; Result := SHFileOperation(SHFileOpStruct); end; |
die überprüfung ob ein zielverzeichnis vorhanden ist habe ich rauskommentiert, da immer eins vorhanden ist
so sieht die Verzeichnisliste aus
Delphi-Quelltext
1: 2: 3: 4: 5:
| verzeichnisliste:=Tstringlist.create; verzeichnisliste.add('C:\test\'); verzeichnisliste.add('C:\test2\'); |
und so wird die funktion aufgerufen....
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| begin CreateDir (edit1.text); sicherungsverzeichnis:=edit1.text; if Kopieren(self.handle,FO_COPY,verzeichnisliste,sicherungsverzeichnis,FOF_ALLOWUNDO) = 0 then ShowMessage('Sicherung erfolgreich!') else Showmessage('Kopieren nicht möglich!'); end; |
ich kann den Fehler nicht finden..... vielleich bin ich auch nur zu blöd.
Ich wünsch euch noch einen schönen Abend, und vielleich kann mir ja jemand helfen.
Moderiert von
raziel: Code- durch Delphi-Tags ersetzt.
Moderiert von
Tino: Überflüssige Zeilenumbrüche entfernt.