Trong ứng dụng của tôi, tôi cần phải sao chép hơn 1000 file nhỏSao chép nhiều tập tin trong Delphi
Dưới đây là đoạn code Tôi đang sử dụng nhưng nó là rất chậm Có cách nào tốt hơn để làm điều này?
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;
Sao chép nhiều tệp nhỏ có thể xảy ra các sự cố I/O, đặc biệt là với các đĩa chậm hơn. Người đứng đầu đĩa phải di chuyển rất nhiều để tìm kiếm các tệp và tìm không gian trống để sao chép chúng. Nếu bạn sao chép các tệp đó từ dòng lệnh, hệ thống có nhanh hơn không? –