W mojej aplikacji trzeba skopiować ponad 1000 małych plikówKopiowanie wielu plików w Delphi
Oto kod używam, ale jest to bardzo powolny Czy istnieje lepszy sposób to zrobić?
procedure Tdatafeeds.RestotreTodaysFiles;
var
SearchRec: TSearchRec;
FromFn, ToFn: string;
Begin
if DirectoryExists(BackupPath1) then
begin
try
if FindFirst(BackupPath1 + '\*.*', (faAnyFile AND NOT(faDirectory)), SearchRec) = 0 then
begin
repeat
FromFn := BackupPath1 + '\' + SearchRec.name;
ToFn := DatafeedsPath1 + '\' + SearchRec.name;
CopyFile(Pchar(FromFn), Pchar(ToFn), false);
until FindNext(SearchRec) <> 0;
end;
finally
FindClose(SearchRec);
end;
end;
End;
Kopiowanie wielu małych plików może spowodować problemy z wejściem/wyjściem, szczególnie w przypadku wolniejszych dysków. Głowice dysków muszą dużo ruszać, aby szukać plików i znaleźć wolne miejsce do ich kopiowania. Jeśli skopiujesz te pliki z wiersza poleceń, czy system jest znacznie szybszy? –