AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Verschiedene Möglichkeiten zum Verschieben von Dateien
Thema durchsuchen
Ansicht
Themen-Optionen

Verschiedene Möglichkeiten zum Verschieben von Dateien

Ein Thema von Angel4585 · begonnen am 9. Feb 2006 · letzter Beitrag vom 13. Feb 2006
Antwort Antwort
Seite 1 von 3  1 23      
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
Benutzerbild von -=wWw=- AK23
-=wWw=- AK23

Registriert seit: 8. Feb 2006
51 Beiträge
 
Delphi 2006 Architect
 
#2

Re: Verschiedene Möglichkeiten zum Verschieben von Dateien

  Alt 9. Feb 2006, 14:00
das klingt echt gut.
ich glaub das hat das zeug für die codelibrary..

zu deiner frage, nein ich wusste noch nicht einmal wie das genau geht.
Niklas
"Den Menschen trennt nur eine Sache von den Tieren: Menschen sind bessere Schauspieler."
  Mit Zitat antworten Zitat
Angel4585

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

Re: Verschiedene Möglichkeiten zum Verschieben von Dateien

  Alt 9. Feb 2006, 14:02
Naja, für die Codelib ist es bissl zu viel Copy&Paste
und zuviel Rechtschreibfehler, aber falls jemand mehr Methoden kennt bitte posten
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#4

Re: Verschiedene Möglichkeiten zum Verschieben von Dateien

  Alt 9. Feb 2006, 14:10
Wozu brauchst du mehrere Möglichkeiten für ein und dieselbe Aktion ? Zumal das ExceptionHandling im ersten Code ziemlich mies und sogar fehlerhaft ist, Nummer 5 wird wohl auch einfach nur #2 aufrufen (hab nicht nachgeschaut, also ohne Gewehr und Munition).
2. und 3. reichen doch vollkommen.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Verschiedene Möglichkeiten zum Verschieben von Dateien

  Alt 9. Feb 2006, 14:12
Kopieren über file-of-byte:
Delphi-Quellcode:
var
  f,t:file of byte;
  buf:array[0..4095] of byte;
  readbytes:integer;
begin
  try begin
    assignfile(f,VON);
    reset(f);
    try begin
      assignfile(t,NACH);
      rewrite(t);
      while not eof(f) do begin
        blockread(f,buf,length(buf),readbytes);
        blockwrite(t,buf,readbytes);
      end;
      closefile(t);
    end except
      try closefile(t) except end;
    end;
    closefile(f);
  end except
    try closefile(f) except end;
  end;
end;
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
Angel4585

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

Re: Verschiedene Möglichkeiten zum Verschieben von Dateien

  Alt 9. Feb 2006, 14:14
Es könnte ja einfach mal sehr interessant sein zu sehen, was für Möglichkeiten einem geboten werden um an ein Ziel zu kommen, ausserdem möchte ich die verschiedenen Methoden miteinander vergleichen, um die schnellste davon auszuwählen. Deswegn brauch ich ein paar verschiedene

@ ichbins:
Danke... ich hab die schon.. nur vergessen zu posten, trotzdem Danke!

meine sieht übrigens so aus:
Delphi-Quellcode:
function TtfMain.CopyAssignFile(AVon,ANach :string):Boolean;
var
 fq,fz : file of byte;
 b : array [1..8192] of Byte;
 lread : integer;
begin
Result:=True;
try
 try
 AssignFile(fq,AVon);
 AssignFile(fz,ANach);
 Reset(fq);
 Rewrite(fz);
 while not eof(fq) do
  begin
  BlockRead(fq,b,Length(b),lread);
  BlockWrite(fz,b,lread);
  end;
 finally
  CloseFile(fq);
  CloseFile(fz);
  end;
except
 Result:=False;
 end;
end;
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#7

Re: Verschiedene Möglichkeiten zum Verschieben von Dateien

  Alt 9. Feb 2006, 14:17
Zitat von Angel4585:
Delphi-Quellcode:
try
try
was soll das bitte bezwecken? er versucht zu versuchen die Datei zu assignen, und ein except gibt's nicht... fehlt da nicht ein begin?
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von -=wWw=- AK23
-=wWw=- AK23

Registriert seit: 8. Feb 2006
51 Beiträge
 
Delphi 2006 Architect
 
#8

Re: Verschiedene Möglichkeiten zum Verschieben von Dateien

  Alt 9. Feb 2006, 14:18
was mich jetzt mal interresieren würde, ist ob es in den verschiedenen methoden
zu unterschieden in der geschwindigkeit kommt.
Niklas
"Den Menschen trennt nur eine Sache von den Tieren: Menschen sind bessere Schauspieler."
  Mit Zitat antworten Zitat
Angel4585

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

Re: Verschiedene Möglichkeiten zum Verschieben von Dateien

  Alt 9. Feb 2006, 14:19
das geht so.. BASTA!!
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#10

Re: Verschiedene Möglichkeiten zum Verschieben von Dateien

  Alt 9. Feb 2006, 14:20
Zitat:
Es könnte ja einfach mal sehr interessant sein zu sehen, was für Möglichkeiten einem geboten werden um an ein Ziel zu kommen, ausserdem möchte ich die verschiedenen Methoden miteinander vergleichen, um die schnellste davon auszuwählen. Deswegn brauch ich ein paar verschiedene
Es würde mich schwer wundern, wenn es eine bessere Methode als über die Win-API gäbe.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz