备份数据库的问题!(30分)

  • 主题发起人 主题发起人 bluesnow
  • 开始时间 开始时间
B

bluesnow

Unregistered / Unconfirmed
GUEST, unregistred user!
[?][blue]现有PARADOX数据库多个表和索引等在一个或多个目录下,想编程实现备份到另外的目录下,如何实现?请各位大虾详细说明一下,最好有关键代码,在下先谢谢了![/blue]
 
将文件拷贝
 
[B)][green]就是想用文件拷贝命令,关键是如何用?有没有相关文章推荐一下?谢谢![/green]
 
用这样:
if CopyFile('路径+要拷贝的文件','路径拷贝到',True) then//true是如存在就覆盖
showmessage('Copy is Complete.');
 
[:)][purple]是多个数据库文件,要一起拷贝,不想一个一个地来。[/purple]
 
多个文件同时复制有两种方法:

1. 用CopyFile函数+文件搜索函数(FindFirst,FindNext等)自己写一个过程。

2. 调用操作系统的命令,ShellExecute('cmd /c xcopy ...');
 
我有目录及子目录文件拷贝的代码,相信能满足你的要求。
E-main to me :renzhm@163.net
 
自己作个循环判断不就行了.
把要操作的文件都写到一动态数组中(aa)
for i:=0 to xx do
begin
if filesexist(aa) then CopyFile(aa,x:/aa,true);
end;
 
[blue]我的email:s_cool@163.net,谢谢![/blue]
 
在windowsAPI中专门有一个很好的文件管理的函数: shfileoperation;
他只有一个参数 类型是:SHFILEOPSTRUCT ;

SHFILEOPSTRUCT chen;
chen.hwnd=MainForm->Handle; //当前窗口句柄
chen.fFlags=FOF_NOERRORUI|FOF_SILENT|FOF_NOCONFIRMATION; //一些简单参数
chen.fAnyOperationsAborted=false;
chen.hNameMappings:=NULL;
chen.lpszProgressTitle:=NULL;
chen.wFunc:=FO_COPY; //
chen.pFrom:="c:/123"; // 原目录
chen.pTo:="d:/234"; // 目的目录,
SHFileOperation(&chen);

//这个函数功能十分强大,详细情况你可以参考MSDN或其他资料;

也可以给我邮件: chenyingchun@yeah.net

给分吧!!!!!!!!!!!

 
和楼上的思路相同,只是我的已经做成了函数哦。而且同时兼顾拷贝和删除文件夹
//文件(夹)拷贝或删除 参数nLx:1、拷贝;2、删除(cMdwjj)
Function Copy_Dir(cYwjj,cMdwjj:String;nLx:Integer):Bool;
Var
Opstruc: TshFileOpStruct;
frombuf,tobuf: Array[0..128] of Char;
begin
FillChar(frombuf,Sizeof(frombuf),0);
FillChar(tobuf,Sizeof(tobuf),0);
StrPcopy(frombuf,cYwjj);
Case nLx of
1:
StrPcopy(tobuf,cMdwjj);
end;
With Opstruc Do
Begin
Wnd:=0;
Case nLx of
1: wFunc:=FO_COPY;
2: wFunc:=FO_DELETE;
Else wFunc:=FO_COPY;
end;
pFrom:=@frombuf;
pTo:=@tobuf;
fFlags:=FOF_NOCONFIRMATION;
fAnyOperationsAborted:=False;
hNameMappings:=Nil;
lpszProgressTitle:=Nil;
end;
try
ShFileOperation(OpStruc);
Result:=True;
except
Result:=False;
end;

调用示例:
拷贝:将当前目录下data目录拷至c:/windows/temp下。
Copy_dir('data','c:/windows/temp',1);
删除:将c:/windows/temp下的data文件夹删除。
Copy_dir('c:/Windows/Temp/data','',2);
对于文件的处理与上类同。

end;
 
前面我已经回答了这个问题
针对你的问题,可以这样
生成一个文件变量,然后把每个文件内容拷入,然后另存,有几个拷几次好了。
 
如拷贝目录用blackbook推荐的Api函数。
如拷贝数据表用batchmove控件,安全方便,看帮助就会操作
拷贝其它类型文件用copyfile
 
[red]谢谢大家,由于我经验不足,分值给得不是很合理,望各位谅解![/red]
 
后退
顶部