Einzelnen Beitrag anzeigen

gispos

Registriert seit: 20. Dez 2007
Ort: germany, stuttgart
12 Beiträge
 
#17

Re: Kann man auch Ordner kopieren???

  Alt 25. Dez 2007, 15:37
Hallo maximi & Morph,
hier mal ein Beispiel für Copy und Move. aWND das Fenster das die Funktion aufruft z.B. Application.Handle. Bei DoMove wird Datei verschoben. IsAborted wird True wenn der User auf „Abbrechen“ glickt. Und bei den Flags lohnt sich’s mal die API- Hilfe anzuschauen.
FOF_SILENT steht für keinen Dialog. FOF_NOERRORUI für keine Fehlermeldung anzeigen. FOF_NOCONFIRMMKDIR für keine Nachfrage ob Ordner erstellt warden soll.
Delphi-Quellcode:
function Sh_FileCopyMove(aWND: HWND; const Source,Dest: string; DoMove: boolean;
 var IsAborted: boolean; Flags: FILEOP_FLAGS=0): Boolean;
var
  fos : TSHFileOpStruct;
  s,d: String;
begin
  Result:= False;
  if (Source='') or (Dest='') then exit;
  s:= Source;
  d:= Dest;
  if Source[Length(S)]<> #0 then S:=S+ #0;
  if D[Length(D)]<> #0 then D:=D+ #0;
  ZeroMemory(@fos,SizeOf(fos));
  with fos do
  begin
    Wnd:= aWND;
    If DoMove then wFunc:= FO_Move
    else wFunc:= FO_COPY;
    if Flags=0 then fFlags:=FOF_NOCONFIRMMKDIR or FOF_NOCONFIRMATION or FOF_SILENT or FOF_NOERRORUI
    else fFlags:=Flags;
    fAnyOperationsAborted:= IsAborted;
    pFrom:=PChar(S);
    pTo:=PChar(D);
  end;
  Result:= SHFileOperation(fos)=0;
  IsAborted:= fos.fAnyOperationsAborted;
end;
Hier ein Aufruf
Delphi-Quellcode:
var IsAborted: boolean;
begin
  If not Sh_FileCopyMove(Handle; ‘E:\Ablage\Test.jpg’, F:\Neuer Ordner\Test.jpg, False, IsAborted) then
begin
  If IsAborted then ShowMessage(‘Abbruch durch User’)
  else ShowMessage(‘Fehler beim kopieren’);
end;
Gruß gispos
  Mit Zitat antworten Zitat