Entwickler-Ecke
Dateizugriff - Datei zum kopieren auswählen
JustusJonas - Mi 30.11.05 11:20
Titel: Datei zum kopieren auswählen
Hallo Leute,
ich habe ein Programm geschrieben, dass Dateien kopieren soll.
Nun möchte ich aber alle Dateien, die mit "EH" beginnen in ein anderes Verzeichnis kopieren.
Ich habe das ganze versucht so zu lösen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| while FindFirst(Quelle, 0, sr ) = 0 do begin InDatei := ExtractFilePath(Quelle) + sr.Name; OutDatei := Ziel + sr.Name; OutDateiBackup := Backup + '\' + sr.Name; if sr.Name <> 'EH*.*' then begin ForceDirectories(Ziel2); FileCopy(InDatei, Ziel2); end else begin ForceDirectories(Ziel); FileCopy(InDatei, Ziel); end; MailBody.Add(sr.Name + ' ins Ziel-Verzeichnis (' + Ziel + ') kopiert'); ForceDirectories(Backup); FileMove(InDatei, Backup); MailBody.Add(sr.Name + ' ins Backup-Verzeichnis (' + Backup + ') verschoben'); mMeldung.Lines.Add(GetDatum + ' - ' + GetTime + ': Datei(en) kopiert!'); inc(i); SendFiles := True; |
Funktioniert aber leider nicht :(
Delphi kopiert alle Dateien nach Ziel2 und die anderen nicht mehr nach Ziel! :(
Was mache ich falsch?
Greetz
Sirke - Mi 30.11.05 11:23
Ich glaube du kannst in Zeile 7 nicht sr.Name <> 'EH*.*' schreiben. Ich würde Funktionen wie Pos() verwenden. Schau dazu einfach mal in die Referenz!
JustusJonas - Mi 30.11.05 12:33
Danke!
Das war der richtige Tipp, hätte ich auch selbst draufkommen können.
Delphi-Quelltext
1:
| if copy(sr.Name,0,2) <> 'EH' then ... |
So gehts! :)
Greetz
Brueggendiek - Do 01.12.05 08:39
Hallo JustusJonas!
Was soll denn das darstellen? while FindFirst ist total falsch! Informiere Dich mal in der OH über FindNext und Findclose!
Inwieweit das Verschieben der Datei auf die Dateisuche einen Einfluß hat, weiß ich nicht. Auf jeden Fall produzierst Du ohne FindClose ein Speicherloch.
Außerdem ruft Du das ForceDirectories für jede Datei erneut auf. Da wird das Programm aber bestimmt super-schnell durch! :mrgreen: Einmal vor der Schleife sollte reichen. Wenn keine leeren Ordner erzeugt werden sollen, verwende ein Boolean-Flag.
Gruß
Dietmar Brüggendiek
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!