Entwickler-Ecke

Windows API - CopyFileEx()


D. Annies - Fr 18.12.09 20:05
Titel: CopyFileEx()
Hi, Delpher,

Ich will mehrere Dateien mit Windows-Dialog kopieren.
ich habe den Eindruck, der folgende Befehl oder seine Anwendung funzt nicht richtig:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
function CopyFileEx(const ASource, ADest: String; ARenameCheck: boolean = false): boolean;
var sh: TSHFileOpStruct;             // die Funktion kapselt den Win-API-Aufruf der
begin                                // Funktion ShFileOperation;  uses ShellApi;
  sh.Wnd := Application.Handle;
  sh.wFunc := FO_COPY;
  sh.pFrom := PChar(ASource + #0);   // String muss mit #0#0 Terminiert
  sh.pTo := PChar(ADest + #0);       // werden, um das Listenende zu setzen
  sh.fFlags := //fof_Silent or
                 fof_MultiDestFiles;
  if ARenameCheck then sh.fFlags := sh.fFlags or fof_RenameOnCollision;
  Result := ShFileOperation(sh) = 0;
end;

CopyFileEx(label30.Caption + 'buch*.dbf', label38.Caption);


wie ist es denn richtig?

Danke, Detlef


Delete - Fr 18.12.09 20:29

user profile iconD. Annies hat folgendes geschrieben Zum zitierten Posting springen:
ich habe den Eindruck, der folgende Befehl oder seine Anwendung funzt nicht richtig:

Aha. Und? Rat mal, was wir jetzt noch von dir wissen wollen.


D. Annies - Fr 18.12.09 20:40

Scusi, Luckie.

Er scheint den Laufwerkswechsel nicht zu bemerken (ich will z.B. von Stick F: nach Stick G: kopieren.
Die Files/ Tabellen haben jeweils Quelle / Ziel das gleiche Datum.

Gruß, Detlef


Delete - Fr 18.12.09 21:34

Wie rufst du denn die Funktion auf? Und von welcher Reden wir jetzt? CopyFileEx oder SHFileOperation?


D. Annies - Fr 18.12.09 21:49

Ich rufe sie auf, wie in der letzten Zeile oben zu lesen.


Delete - Fr 18.12.09 22:02

Ach so, das ist der Aufruf. Es gibt nämlich auch eine gleichnamige API-Funktion.


D. Annies - Fr 18.12.09 23:18

hi, Michael,

wie kann ich denn jetzt sinnvoll weitermachen?
Hast du schon eine Idee?

Gruß, Detlef


Delete - Fr 18.12.09 23:55

Was heißt "scheint Laufwerkswechsel nicht zu bemerken"? Debug das ganze doch mal und guck, was in der Struktur drinsteht.


D. Annies - Sa 19.12.09 08:58

Hm, wenn ich die gleichnamige API-Funktion verwenden will, - klingt ja am logischsten - was muss ich denn dann noch bedenken? Uses??


Delete - Sa 19.12.09 15:21

Dann musst du bedenken, dass man damit imme rnur eine Datei auf einmal kopieren kann. CopyFileEx ist in Windows.pas deklariert.


D. Annies - So 20.12.09 11:04

Aha, danke dir erstmal, ich werde dann wohl mal weitersuchen ...
Gruß aus Lübeck!