Difference between revisions of "CopyFile/ru"

From Lazarus wiki
Jump to navigationJump to search
m (Fixed syntax highlighting)
 
Line 1: Line 1:
 
{{CopyFile}}
 
{{CopyFile}}
  
Модуль: Lazarus [[fileutil/ru|fileutil]]
+
[[Unit|Модуль]]: Lazarus [[fileutil/ru|fileutil]] ([[UTF-8]] замена для кода FPC [[RTL]] и дополнительная обработка файлов/каталогов)
  
 
<syntaxhighlight lang=pascal>
 
<syntaxhighlight lang=pascal>
Line 19: Line 19:
  
 
'''copyfile''' копирует файл из места ''SrcFilename'' в место ''DestFilename''. При желании можно сохранить метку времени файла (флаг ''cffPreserveTime'').  
 
'''copyfile''' копирует файл из места ''SrcFilename'' в место ''DestFilename''. При желании можно сохранить метку времени файла (флаг ''cffPreserveTime'').  
 +
 +
 +
== Windows example ==
  
 
Пример:
 
Пример:
Line 32: Line 35:
  
 
{{Note|Если вы хотите использовать данную функцию в консольных программах, вам необходимо добавить модуль '''LazUtils''', который не будет ''тянуть'' за собой весь пакет [[LCL/ru|LCL]]}}
 
{{Note|Если вы хотите использовать данную функцию в консольных программах, вам необходимо добавить модуль '''LazUtils''', который не будет ''тянуть'' за собой весь пакет [[LCL/ru|LCL]]}}
 +
 +
== Lazarus example ==
 +
 +
В этом примере используются следующие компоненты или функции:
 +
* [[TOpenDialog]] [[Image:topendialog.png]]
 +
* [[TSaveDialog]] [[Image:tsavedialog.png]]
 +
* [[Dialog_Examples#MessageDlg|MessageDlg]]
 +
 +
 +
<syntaxhighlight lang="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;
 +
 +
</syntaxhighlight>

Latest revision as of 09:00, 26 July 2021

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 в противном случае.

Light bulb  Примечание: Если вы хотите использовать данную функцию в консольных программах, вам необходимо добавить модуль 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;