1、 CopyFile(PChar(源目录),PChar(目标目录),True); CopyFileTo('F:\MyProject\delphi\message\data\data.mdb','c:\data.mdb');//不能覆盖已存在的文件******// //***************下面的这个WINAPI最后的一个参数为true时不覆盖已经存在的文件。为false时自动覆盖存在的文件。*********// //*************** CopyFile(pchar(''+MyPath+'/data/data.mdb'),pchar(''+MyPath+'/data/backup.mdb'),false); 2、 api的不会 我一般是在程序中根据程序所在目录建立一个批处理文件 copy x:\xxx\xxx.exe c:; exit;
在窗体创建或退出时执行; 因为在外地网吧,所以不能提供代码,不过这个应该不难。 3、 也可以直接调用shellexec winexec, shellexec('copy gp.exe c:') 4、 不用api的如下: procedure CopyFile (SourceName, TargetName: String); var Stream1, Stream2: TFileStream; begin Stream1 := TFileStream.Create (SourceName, fmOpenRead); try Stream2 := TFileStream.Create (TargetName, fmOpenWrite or fmCreate); try Stream2.CopyFrom (Stream1, Stream1.Size); finally Stream2.Free; end finally Stream1.Free; end end; 5、 如果是在本程序运行的时候复制本程序的话,可以这样:
procedure Tform1.formCreate(Sender: TObject); var s:Pchar; begin s:= Pchar(Application.ExeName); copyfile(s, 'c:\a.exe', true); end; 6、 CopyFile(PChar(源文件),PChar(目标文件),True);为False表示覆盖 7、 才看到这个贴子,可以用以下的方法:
CopyFile(pchar('c:\sql.txt'), pchar('d:\sql.txt'), True);
只要是文件的复制,都可以。
移动文件: MoveFile(pchar('c:\sql.txt'), pchar('d:\sql.txt'));
删除文件:
DeleteFile('c:\sql.txt');
以上都是可行的。 8、 不好意思,今天刚看到这个帖子 TO: atm008 (小小菜鸟) 运行到mypath出错! mypath是一个变量。用来取得当前系统的路径。以避免使用绝对路径。mypath要先定义才能使用。定义方法如下:
unit main;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, forms, Dialogs, Menus, ToolWin, ComCtrls, KsControls, KsPanels, KsThemePanels, StdCtrls, ExtCtrls, jpeg, DB, ADODB, ShellAPI, IdGlobal;
type …… private { Private declarations } public { Public declarations } end;
var //---引入此变量是为了解决导出XML文件时改变相对路径会改变应用程序路径的问题 MyPath:string;
procedure Tform_main.formCreate(Sender: TObject); begin MyPath:=ExtractFilePath(ParamStr(0)); …… end;
如果要在其他的窗体中使用到mypath,则需要把主窗体放在要使用的窗体的USES中。上次未能一次讲清楚。抱歉 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论