CopyFile/ru

From Lazarus wiki
Revision as of 08:00, 26 July 2021 by Zoltanleo (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

English (en) suomi (fi) français (fr) русский (ru)

Модуль: Lazarus fileutil (UTF-8 замена для кода FPC RTL и дополнительная обработка файлов/каталогов)

// флаги для копирования
type
 TCopyFileFlag = (
   cffOverwriteFile,
   cffCreateDestDirectory,
   cffPreserveTime
   );
 TCopyFileFlags = set of TCopyFileFlag;

function CopyFile(const SrcFilename, DestFilename: string): boolean;
function CopyFile(const SrcFilename, DestFilename: string; PreserveTime: boolean): boolean;
function CopyFile(const SrcFilename, DestFilename: string; Flags: TCopyFileFlags=[cffOverwriteFile]): boolean;

copyfile копирует файл из места SrcFilename в место DestFilename. При желании можно сохранить метку времени файла (флаг cffPreserveTime).


Windows example

Пример:

uses 
...
fileutil
...
CopyFile('c:\autoexec.bat','c:\windows\temp\autoexec.bat.backup');

Результат работы функции - вернёт True при успешном копировании и False в противном случае.

Note-icon.png

Примечание: Если вы хотите использовать данную функцию в консольных программах, вам необходимо добавить модуль LazUtils, который не будет тянуть за собой весь пакет LCL

Lazarus example

В этом примере используются следующие компоненты или функции:


procedure TForm1.Button1Click(Sender: TObject);
var
  ok:boolean;
begin
  ok := false;
  if OpenDialog1.Execute then
    if SaveDialog1.Execute then
      ok := CopyFile(OpenDialog1.FileName, SaveDialog1.FileName);
  if ok then MessageDlg('Файл '+OpenDialog1.FileName+' успешно скопирован в ' +
      SaveDialog1.FileName,mtInformation,[mbOk],0)
  else MessageDlg('Копирование не удалось',mtWarning,[mbOk],0);
end;