Einzelnen Beitrag anzeigen

Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#1

Verschiedene Möglichkeiten zum Verschieben von Dateien

  Alt 9. Feb 2006, 13:53
Hallo zusammen,

ich suche gerade nach verschiedenen Möglichkeiten eine Datei von A nach B zu kopieren.

Bis jetzt hab ich 5 Möglichkeiten:

1.:
Delphi-Quellcode:
FUNCTION TtfMain.QuickCopy ( Quelle, Ziel : STRING ) : BOOLEAN;
VAR
  S, T: TFileStream;
BEGIN
  Result := TRUE;
  S := TFileStream.Create( Quelle, fmOpenRead );
  TRY
    TRY
      T := TFileStream.Create( Ziel, fmOpenWrite OR fmCreate );
    EXCEPT
      Screen.Cursor := crDefault;
      MessageDlg('Fehler beim Erzeugen der Zieldatei'+#13+Ziel, mtError, [mbOK], 0);
      Result := FALSE;
    END;
    TRY
      TRY
        T.CopyFrom( S, S.Size );
        FileSetDate( T.Handle, FileGetDate( S.Handle ) ) ;
        { Dateizeit setzen }
      EXCEPT
        Screen.Cursor := crDefault;
        MessageDlg('Fehler beim Kopieren der Zieldatei'+#13+Ziel, mtError, [mbOK], 0);
        Result := FALSE
      END;
    FINALLY
      T.Free
    END;
  FINALLY
    S.Free
  END
END;
2.:
CopyFile(PChar(Quelldatei), PChar(Zieldatei), FailIfExists); 3.:
Delphi-Quellcode:
function TtfMain.FileOperation(QuellDatei:string;Zielverz:string;Action:integer):boolean;
var Operation : TSHFileOpStruct;
    i : integer;
begin
  with Operation do begin
    {Parent Window}
    wnd:=Application.Handle;
    {was soll gemacht werden?}
    wFunc:=Action;

    {Quelldateien nach pFrom kopieren}
    pFrom:=PChar(QuellDatei+#0);

    {Zielverzeichnis nach pTo kopieren}
    pTo:=PChar(ZielVerz+#0);

    {Titel der Fortschrittanzeige}
    case Action of
      FO_Delete : lpszProgressTitle:='Dateien löschen';
      FO_Copy : lpszProgressTitle:='Dateien kopieren';
      FO_Move : lpszProgressTitle:='Dateien verschieben';
      FO_Rename : lpszProgressTitle:='Dateien umbenennen';
    end;
{  Flags für die Aktion einstellen

    ohne Fortschrittanzeige:
    fFlags:=FOF_AllowUndo or FOF_Silent;

    ohne Bestätigung :
    fFlags:=FOF_AllowUndo or FOF_NoConfirmation

    z.B. klammheimlich in den Papierkorb verschieben:
    fFlags:=FOF_AllowUndo or FOF_Silent or FOF_NoConfirmation}


    fFlags:=FOF_NoConfirmation or FOF_Silent;
  end;

  {Und los gehts!}
  Result:=SHFileOperation(Operation)=0;
end;
4.:
Delphi-Quellcode:
procedure TtfMain.MemoryStreamCopy(Von,Nach : string);
var
  mem : TMemoryStream;
  FilePathA, FilePathB : String;
begin
  FilePathA := Von; // Pfad der zu kopierenden Datei
  FilePathB := Nach; // Zielpfad
  mem := TMemoryStream.Create;
  try
    mem.LoadFromFile(filePathA);
    mem.SaveToFile(FilepathB);
  finally
    mem.Free;
  end;
end;
5.:
jclfileutils.FileCopy(Quelldatei,Zieldatei,True); //Eine Funktion der JCL mich würde jetzt interessieren, ob ihr noch mehr Mothoden kennt eine Datei zu kopieren?

Wäre echt toll wenn ich die hier reinposten würdet!

Vielen Dank

Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat