Entwickler-Ecke

Dateizugriff - winziges Problem mit Datei kopieren


thommy f - Di 27.10.09 18:00
Titel: winziges Problem mit Datei kopieren
Hallo mal wieder

so, ich habe mich jetzt seit heute Vormittag durch dieses Forum und die mir zur Verfügung Fachliteratur (Kochbuch Delphi 5 HANSER-Verlag) gequält um eine einigermaßen brauchbare Kopier-Funktion raus zu kriegen.

Ich möchte das mit der ShellAPI machen und habe nun folgenden code fertig:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
procedure TF_Haupt.BBTN_copyClick(Sender: TObject);
  var
  i : integer;
  dateien : string;
  shellinfo : TSHFileOpStruct;
  Dateiname : File;
  begin
  F_Haupt.I_Anzeige.Picture.Free;
  dateien := '';
  for i := 0 to F_Haupt.FLB_Bilder.Items.Count-1 do
  begin
    if F_Haupt.FLB_Bilder.Selected[i] then
    begin
      dateien := dateien + F_Haupt.FLB_Bilder.Items[i] + #0;
    end;
  end;
  dateien := dateien + #0;
  with shellinfo do
  begin
    Wnd := handle;
    wFunc := FO_COPY;
    pFrom := PChar(dateien);
    pTo := PChar(F_Haupt.E_Directory.Text + '\');
    SHFileOperation(shellinfo);
  end;
  end;


beim Kopieren bekomme ich die Fehlermeldung, dass auf die Quelldatei oder den Quelldatenträger nicht zugegriffen werden kann. Ich vermute, das liegt ganz einfach daran, dass die Datei geöffnet ist, wenn ich Sie kopieren möchte. Die Datei ist zu diesem Zeitpunkt in einer FileListBox ausgewählt und wird in einer Image-Komponente Angezeigt. WIE zum Geier kann ich die Datei schließen, dann kopieren und dann wieder öffnen? CloseFile möchte ja etwas vom Typ File haben und aus den beiden Komponenten, wo ich infos über die Date herbekommen könnte finde ich eigentlich nur Strings.


HÜÜÜLLLLFFFEEE!!!

THX!


thepaine91 - Di 27.10.09 18:09

Für was gibt es

copyfile

????