Wayan - So 29.05.05 21:30
Titel: Kopieren mit SHFILEOPERATION bringt Fehler
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
Delphi-Quelltext
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.
:cry:
Moderiert von
raziel: Code- durch Delphi-Tags ersetzt.
Moderiert von
Tino: Überflüssige Zeilenumbrüche entfernt.