![]() |
Datei move/kopieren m. Copyfile / movefile + Param
Hallo!
Ich möchte schnell Dateien verschieben. darum hab ich mir gedacht, mit der Windows API. Allerdings find ich die Syntax nur beding gut erklärt. Besonders das copyflag. nun meine Frage Also ich möchte, daß mein Programm beim Kopieren oder besonders auch Verschieben einer doppelten Datei abbricht und einen Umbennen/ "Speichern als "-Dialog anbietet. Wie ermittle ich am schnellsen den Zustand? Mit Copy/movefile und ner Error-Auswertung?
Delphi-Quellcode:
oder , wenn ich
begin
if not CopyFile('d:\test.jpg','c:\test.jpg', True); then Error_Auswertung // k.a. Wie machen ... end; vorher noch mit if not FileExists('c:\test.jpg') then abfrage, ob die Datei exisistiert und bei Bedarf dann Kopiere oder Umbennene? |
Re: Datei move/kopieren m. Copyfile / movefile + Param
Moin Almond,
Du solltest Dir mal ![]() |
Re: Datei move/kopieren m. Copyfile / movefile + Param
ähh, ja danke..
aber geht's nicht etwas einfacher? ach ja: und ohne .NET (hab ich verwirrender Weise auch gefunden) |
Re: Datei move/kopieren m. Copyfile / movefile + Param
mhh ich versteh das damit nicht..
aber es muß doch auch noch anders gehen ... weiß sonst keiner was? |
Re: Datei move/kopieren m. Copyfile / movefile + Param
Moin Almond,
ich hab' Dir hier mal ein kleines Beispiel für das Kopieren gemacht (ungetestet): (ohne Prüfung, ob Quelle und Ziel auch so sein können)
Delphi-Quellcode:
In der CodeLib müsstest Du auch eine recht allgemein gehaltene Kapselung von
uses Shellapi;
// True wenn erfolgreich, sonst false function csCopyFile(const AsFrom : string;const AsTo : string) : boolean; var fos : TSHFileOpStruct; begin FillChar(fos,SizeOf(fos),0); // Datenstruktur auf 0 initialisieren fos.wFunc := FO_COPY; // Datei kopieren fos.pFrom := PChar(AsFrom+#00); // von fos.pTo := PChar(AsTo+#00); // nach. Jeweils +#00, da es auch eine Liste sein könnte // deren einzelne Angaben durch #00 getrennt werden. // Es wird ein, die Liste abschliessendes, #00 benötigt. fos.fFlags := FOF_NOCONFIRMATION or // Keine Rückfragen, immer mit "Ja" antworten FOF_NOCONFIRMMKDIR or // Verzeichnis ohne Rückfrage erstellen falls erforderlich FOF_NOERRORUI or // Fehlermeldungen unterdrücken FOF_RENAMEONCOLLISION or // Zieldatei automatisch umbenennen, falls sie schon existiert FOF_SILENT; // Anzeige des Kopierfortschritts unterdrücken Result := SHFileOperation(fos) = 0; end; ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz