Hallo,
ich habe eine Funktion zum Kopieren, Verschieben, etc von Dateien und Verzeichnissen gefunden und in ein eigenes Programm integriert.
Delphi-Quellcode:
function DoFileWork(aOperation: FILEOP_FLAGS; aFrom, aTo: AnsiString;
Flags: FILEOP_FLAGS): Integer;
{***************************************************************************************}
var
FromPath, ToPath: AnsiString;
SHFileOpStruct: TSHFileOpStruct;
begin
FromPath := aFrom + #0#0;
ToPath := aTo + #0#0;
with SHFileOpStruct do
begin
Wnd := 0;
wFunc := aOperation;
pFrom := PAnsiChar(FromPath);
if ToPath <> '' then
begin
pTo := PAnsiChar(ToPath)
end else begin // target available
pTo := nil;
end; // target not available
fFlags := Flags;
end; // structure
Result := SHFileOperationA(SHFileOpStruct);
end;
In einem Formular sind jeweils zwei Drive-Comboboxen, zwei Directory-Listboxen und zwei Filelistboxen jeweils als Quelle und Ziel angelegt. Nach Auswahl einer Quelldatei und einem Zielordner wird per Button die obige Funktion aufgerufen. Dies klappt auch wunderbar bei dem ersten Kopiervorgang. Wenn ich eine zweiten Kopiervorgang (aus selbem Quellordner in selben Zielordner) starten möchte erhhalte ich eine Fehlermeldung:
Datei kann nicht kopiert werden. Die Quelldatei oder vom Quelldatenträger kann nicht gelsen werden.
Wechsel ich zwischen zwei Kopiervorgängen Quelllaufwerk oder Quellordner klappt es wieder - aber nur einmal.
Dies ist Behandlungsroutine für den Kopierbutton
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
{***************************************************************************************}
var i : integer;
files : string;
begin
files := '';
for i := 0 to filelistbox1.Items.Count - 1 do
if filelistbox1.Selected [i] then
files := files + filelistbox1.Items [i];
DoFileWork(FO_COPY, files, directorylistbox2.Directory, FOF_NOCONFIRMATION);
filelistbox1.update;
filelistbox2.update;
end;
Wer kann mir helfen
Günther Käberich
[edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]
[edit=Christian Seehase]Delph-Tags ergänzt. Mfg, Christian Seehase[/edit]