Entwickler-Ecke
Dateizugriff - Dateien 1:1 Kopieren
Vamos - Sa 31.10.09 19:51
Titel: Dateien 1:1 Kopieren
Hallo ihr Lieben,
mein Programm macht irgendwie nicht das, was ich möchte. Er sollte sich aus einer Listbox einen Eintrag(auch Pfad) kopieren und die Quelldatei kopieren und in meinem Zielverzeichnis unter dem Selben Namen speichern.
Mein Ansatz:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| begin forcedirectories('C:\Backups\'); for k:=0 to listbox9.items.count -1 do if listbox9.items[k][1]<>'''' then begin Copyfile(PChar(ListBox9.Items.Strings[k]), PChar('C:\Backups\'+ListBox9.Items.Strings[k]), true); end; |
Aber er macht nichts... Wahrscheinlich sage ich ihm das auch :-S
Vielen Dank im Voraus.
Niko S. - Sa 31.10.09 20:33
wenn die Daten in der Listbox auch einen Pfad besitzten, dann probier's doch mal mit
Delphi-Quelltext
1:
| PChar('C:\Backups\'+ExtractFileName(ListBox9.Items.Strings[k])) |
Also wenn die Daten in der Listbox so aussehen:
C:\ein Ordner\Noch einer\datei.endung
Bergmann89 - Sa 31.10.09 21:37
Hey,
wie sehen denn die String in der Liste aus? Und soll er nur alle Datein in den Backup-Ordner kopieren, oder soll er auch die Unterordner des Source-Folders erstellen?
MfG Bergmann.
Delete - Sa 31.10.09 22:25
Was mich immer stört ist, dass hier sofort gepostet wird ohne das vorher mal selbst geguckt wird, wo der Fehler liegen könnte.
COPYFILE hat zum Beispiel einen Rückgabewert und wenn es fehlschlägt kann man den Wert von
GETLASTERROR abfragen und meist erfährt man dann den Grund, warum eine Funktion fehlgeschlagen ist. Desweiteren wird anscheinend erst gar nicht selber debuggt, sondern es wird gehofft, dass unsere Glaskugeln dies erledigen.
Und warum prüfst du, ob das erste Zeichen eines Listbox Eintrages leer ist? Wird dadurch die Kopier-Funktion überhaupt aufgerufen?
Das alles kannst nur du uns sagen. Wir können nur raten. Also bitte erstmal Hausaufgaben (Debuggen, Rückgabewerte auswerten, ...) machen und dann posten.
Hinzukommen ungenügende Informationen. Wie hier auch schon gefragt wurde: Was steht in der Listbox drin? Nur der Dateiname oder auch ein Pfad.
F34r0fTh3D4rk - So 01.11.09 14:59
Handelt es sich bei
'''' nicht um ein ' ?
Ergibt für mich an dieser Stelle recht wenig Sinn. Gemeint wahr vermutlich:
[Glaskugel]
[/Glaskugel]
Bergmann89 - Mo 02.11.09 12:55
Hey,
Vlt steht das ja in seiner ListBox, weis ja niemand wie die String da drin aussehen ;)
@Luckie: ich war aber am anfang auch nich anders, hab dann aber mit der Zeit gelernt was man zuerst machen sollte, bzw. welche sachen für eine ordentliche FehlerDiagnose erforderlich sind :P
@Vamos: also wie schon gesagt FehlerCode mit GetLastError Prüfen. Mit SystemErrorMessage bekommt man noch nen schönen Text dazu:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| for i := 0 to ListBox1.Items.Count-1 do begin CopyFile(PChar(ListBox1.Items[i]), PChar(ExtractFilePath(Application.ExeName)+ExtractFileName(PChar(ListBox1.Items[i]))), false); Memo1.Lines.Add('ListBoxItem: '+IntToStr(i)+' - Error: '+SysErrorMessage(GetLastError)); end; |
un das kommt dabei raus:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| LOG: ListBoxItem: 0 ItemText: D:\CopyTest\test\Kopie (2) von TEST.txt Error: Der Vorgang wurde erfolgreich beendet ListBoxItem: 1 ItemText: D:\CopyTest\test\Kopie (3) von TEST.txt Error: Der Vorgang wurde erfolgreich beendet ListBoxItem: 2 ItemText: D:\CopyTest\test\Kopie (4) von TEST.txt Error: Der Vorgang wurde erfolgreich beendet ListBoxItem: 3 ItemText: D:\CopyTest\test\Kopie von TEST.txt Error: Der Vorgang wurde erfolgreich beendet ListBoxItem: 4 ItemText: D:\CopyTest\test\TEST.txt Error: Der Vorgang wurde erfolgreich beendet |
Und wenn du das so gemacht hast,dann ist es vlt gar nicht mehr nötig, das wir dir helfen den Fehler zu finden, weil du den Fehler schon selbst erkennen kannst. Wir könn dir dann helfen den Fehler zu beseitigen...
MfG Bergmann
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!