Sign in Join
Wiki copytemporary

CopyFile/ru

English · Français · Suomi · Русский

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

pascal
// флаги для копирования
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

Пример:

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

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

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

Lazarus example

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

pascal

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;

From the Free Pascal wiki, page "CopyFile/ru", as it stood on 2021-07-26 after a change by Zoltanleo, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revision 2, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.