请帮我看看下面的代码,是关于copyfile的,很急,答完马上给分,谢谢。(20分)

  • 主题发起人 主题发起人 dreamblue
  • 开始时间 开始时间
D

dreamblue

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.Button2Click(Sender: TObject);
var
data:string;
begin
copyfile('d:/db/data/buy.db','D:/databak/buy.db',False);
copyfile('d:/db/data/pasw.db','D:/databak/pasw.db',False);
copyfile('d:/db/data/bm.db','D:/databak/bm.db',False);
copyfile('d:/db/data/zg.db','D:/databak/zg.db',False);
showmessage('数据文件已成功备份到d:/databak目录下');
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
IF MessageBox(GetActiveWindow(),'是否从备份目录中恢复数据?','提示',mb_IconQuestion+mb_YesNo)=Id_yes then
begin
copyfile('D:/databak/buy.db','d:/db/data/buy.db',False);
copyfile('D:/databak/bm.db','d:/db/data/bm.db',False);
copyfile('D:/databak/zg.db','d:/db/data/zg.db',False);
copyfile('D:/databak/pasw.db','d:/db/data/pasw.db',False);
showmessage('数据已成功恢复');
end;
end;

是这样的,我数据库是db的,以上是备份和恢复的代码
但是备份的原文件的目录是不确定的,但数据文件buy.db,bm.db等都存在于安装目录的data
文件夹下,能不能用getcurrentdirectory函数得到当前目录,然后再加上/data/buy.db作
为原文件的路径,但具体代码如何写,我试着写过,但不能成功,请大家给出一段代码。
 
我在线等大家解答,很急呀。
 
你说的可以的。
 
用application.exename取得你程序所在的目录,然后用
ExtractFilePath(application.exename)取得程序所在的目录
取得的形式为:“C:/Program Files/Borland/Delphi6/Projects/”
 
Table1.DatabaseName := ExtractFilePath(Application.EXEName) + 'Data';
Table1.TableName := 'Animals.dbf';
Table1.Active := True;
 
procedure TForm1.Button2Click(Sender: TObject);
var
data:string;
begin
copyfile(ExtractFilePath(Application.EXEName) + 'Data/'+'buy.db','D:/databak/buy.db',False);
copyfile(ExtractFilePath(Application.EXEName) + 'Data/'+'pasw.db','D:/databak/pasw.db',False);
copyfile(ExtractFilePath(Application.EXEName) + 'Data/'+'bm.db','D:/databak/bm.db',False);
copyfile(ExtractFilePath(Application.EXEName) + 'Data/'+'zg.db','D:/databak/zg.db',False);
showmessage('数据文件已成功备份到d:/databak目录下');
end;
 
给一个例子;别的类似
copyfile(pchar(ExtractFilePath(ParamStr(0))+ 'Data/'+'zg.db'),
pchar('D:/databak/zg.db'),False);
 
多人接受答案了。
 
后退
顶部