Ich möchte alle in einer Listbox vorhandenen Dateien in ein beliebiges Verzeichnis kopieren. Ich nutzte den Code von sakura:
Delphi-Quellcode:
function DoFileWork(
aWnd: HWND; aOperation: UINT; aFrom, aTo: TStrings; aFlags: FILEOP_FLAGS
): Integer;
var
I: Integer;
FromPath, ToPath: string;
SHFileOpStruct: TSHFileOpStruct;
begin
FromPath := '';
for I := 0 to aFrom.Count - 1 do
FromPath := FromPath + aFrom.Strings[I] + #0;
FromPath := FromPath + #0;
if Assigned(aTo) then
begin
ToPath := '';
for I := 0 to aTo.Count - 1 do
ToPath := ToPath + aTo.Strings[I] + #0;
ToPath := ToPath + #0;
if aTo.Count > 0 then
aFlags := aFlags or FOF_MULTIDESTFILES;
end;
with SHFileOpStruct do
begin
Wnd := aWnd;
wFunc := aOperation;
pFrom := PChar(FromPath);
if Assigned(aTo) then
begin
pTo := PChar(ToPath)
end else begin // target available
pTo := nil;
end; // target not available
fFlags := aFlags;
end; // structure
Result := SHFileOperation(SHFileOpStruct);
end;
Der Aufruf:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var sl: TStringList;
begin
sl := TStringList.Create;
sl.AddStrings(ListBox2.Items);
DoFileWork(Self.Handle, FO_COPY, sl);
end;
möchte einfach nicht funktionieren. Wo muß die genaue Pfadangabe vorgenommen werden?