Sign in Join
Wiki copytemporary

CopyFile/ru: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: CopyFile/ru

OldNewLine
1+[[Unit|Модуль]]: Lazarus [[fileutil/ru|fileutil]] ([[UTF-8]] замена для кода FPC [[RTL]] и дополнительная обработка файлов/каталогов)
2+```
3+// флаги для копирования
4+ type
5+ TCopyFileFlag = (
6+ cffOverwriteFile,
7+ cffCreateDestDirectory,
8+ cffPreserveTime
9+ );
10+ TCopyFileFlags = set of TCopyFileFlag;
11+
12+ function CopyFile(const SrcFilename, DestFilename: string): boolean;
13+ function CopyFile(const SrcFilename, DestFilename: string; PreserveTime: boolean): boolean;
14+ function CopyFile(const SrcFilename, DestFilename: string; Flags: TCopyFileFlags=[cffOverwriteFile]): boolean;
15+```
16+
17+**copyfile** копирует файл из места _SrcFilename_ в место _DestFilename_. При желании можно сохранить метку времени файла (флаг _cffPreserveTime_).
18+
19+
20+
21+## Windows example
22+
23+Пример:
24+```
25+uses
26+ ...
27+ fileutil
28+ ...
29+ CopyFile('c:\autoexec.bat','c:\windows\temp\autoexec.bat.backup');
30+```
31+
32+**Результат работы функции** \- вернёт [[True/ru|True]] при успешном копировании и [[False/ru|False]] в противном случае.
33+
34+![Light bulb](https://upload.wikimedia.org/wikipedia/commons/d/d8/Nuvola_apps_ktip.png) **Примечание:** Если вы хотите использовать данную функцию в консольных программах, вам необходимо добавить модуль **LazUtils** , который не будет _тянуть_ за собой весь пакет [[LCL/ru|LCL]]
35+
36+## Lazarus example
37+
38+В этом примере используются следующие компоненты или функции:
39+
40+ * [[TOpenDialog]] [![topendialog.png](/wiki-images/1/1c/topendialog.png)](</File:topendialog.png>)
41+ * [[TSaveDialog]] [![tsavedialog.png](/wiki-images/4/4a/tsavedialog.png)](</File:tsavedialog.png>)
42+ * [[Dialog Examples|MessageDlg]]
43+
44+
45+
46+```
47+procedure TForm1.Button1Click(Sender: TObject);
48+ var
49+ ok:boolean;
50+ begin
51+ ok := false;
52+ if OpenDialog1.Execute then
53+ if SaveDialog1.Execute then
54+ ok := CopyFile(OpenDialog1.FileName, SaveDialog1.FileName);
55+ if ok then MessageDlg('Файл '+OpenDialog1.FileName+' успешно скопирован в ' +
56+ SaveDialog1.FileName,mtInformation,[mbOk],0)
57+ else MessageDlg('Копирование не удалось',mtWarning,[mbOk],0);
58+ end;
59+```
60+
61+---
62+*From the Free Pascal wiki, page "CopyFile/ru", as the Internet Archive kept it on 2025-02-09. 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](/wiki-contact).*

Back to history