Einzelnen Beitrag anzeigen

Normalement
(Gast)

n/a Beiträge
 
#1

FileCopy-Funktion optimieren (Buffer-Size)

  Alt 26. Mär 2016, 13:30
Hallo,

ich nutze folgende Funktion, um Dateien zu kopieren (verkürzte Variante):

Delphi-Quellcode:
function FastFileCopyEx(const InFileName, OutFileName: string): Boolean;
const
 BufSize = 3 * 4 * 4096;
type
 PBuffer = ^TBuffer;
 TBuffer = array [1 .. BufSize] of Byte;
var
  Size: DWord;
  Buffer: PBuffer;
  infile, outfile: file;
begin
 if FileExists(InFileName) then
  begin
   if (InFileName <> OutFileName) then
    begin
     Buffer := nil;
     Assign(infile, InFileName);
     Reset(infile, 1);

     try
      Assign(outfile, OutFileName);
      Rewrite(outfile, 1);
      
      try
       New(Buffer);

       repeat
        BlockRead(infile, Buffer^, BufSize, Size);
        BlockWrite(outfile, Buffer^, Size);
        
        {* ... *}
         
       until Size < BufSize;
      finally
       if Buffer <> nil then
        Dispose(Buffer);

       CloseFile(outfile);
      end;
     finally
      CloseFile(infile);
     end;
    end;
  end;
 {* ... *}
end;
Ist es möglich das Kopieren von Dateien mit einer Änderung der Buffer-Größe zu optimieren?
Warum genau da 3*4*4096 steht, weiß ich nicht mehr, da der Code uralt ist.

Geändert von Normalement (26. Mär 2016 um 15:14 Uhr)
  Mit Zitat antworten Zitat