Мне нужно добавить некоторые функции в мою программу с графическим интерфейсом Lazarus и Free Pascal - мне нужно, чтобы она также копировала файлы из выбранного пользователем каталога в другой каталог. У меня есть событие onclick кнопки TSelectDirectoryDialog «Выбрать источник» для исходного каталога и событие onclick кнопки TSelectDirectoryDialog «Выбрать место назначения» для целевого каталога. У меня есть третья кнопка для копирования из источника в место назначения.
До сих пор я нашел CopyFile, который копирует файлы и исходные атрибуты даты, но не воссоздает структуру подкаталогов каких-либо подкаталогов выбранного пользователем исходного каталога. По сути, я пытаюсь реплицировать исходный каталог в новом каталоге в другом месте.
Я зашел так далеко:
Public Vars :
DestDir, SourceDir : string
...
FS := TFileSearcher.Create;
FS.OnFileFound := @CopyTheFile; // CopyTheFile is my own procedure
FS.Search(SourceDir, '*', True);
...
procedure TForm1.CopyTheFile(FileIterator: TFileIterator);
var
DestinationName: String;
begin
DestinationName := IncludeTrailingPathDelimiter(DestDir) + ExtractFileName(FileIterator.FileName);
if not FileUtil.CopyFile(FileIterator.FileName, DestinationName, true) then
ShowMessage(FileIterator.FileName + ' failed to copy');
end;
Может ли кто-нибудь помочь мне с кодом при копировании подкаталогов и их файлов? Я также задал вопрос на форуме Lazarus здесь: Тема Lazarus
Большое спасибо
Тед