Difference between revisions of "CopyFile/ru"
From Lazarus wiki
Jump to navigationJump to searchm (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 в противном случае.
Примечание: Если вы хотите использовать данную функцию в консольных программах, вам необходимо добавить модуль 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;