{
Alvin Ye 叶冬开
keywork : Access 数据库 备份 winexec winrar 压缩 加密
}
unit uBak;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,FileCtrl;
type
TfBak = class(TForm)
Label1: TLabel;
eFilePath: TEdit;
btnSelPath: TButton;
btnBak: TButton;
procedure FormShow(Sender: TObject);
procedure btnBakClick(Sender: TObject);
procedure btnSelPathClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fBak: TfBak;
implementation
uses uDM, StrUtils;
{$R *.dfm}
procedure TfBak.FormShow(Sender: TObject);
begin
//选择目录
eFilePath.Text:=ExtractFilePath(Application.ExeName)+'BAk/';
btnBak.Enabled:=TRUE;
end;
procedure TfBak.btnBakClick(Sender: TObject);
const
RarFilePwd:String='Pwd';
var
datafiledir:string;
rarappdir:string;
szcmd:string;
backuptodir:string;
begin
btnBak.Enabled:=False;
//如果没有目录,就建
if not DirectoryExists(eFilePath.Text) then MkDir(eFilePath.Text);
//判断目录是否完整
if RightStr(eFilePath.Text,1)<>'/' then eFilePath.Text:=eFilePath.Text+'/';
datafiledir:=ExtractFilePath(Application.ExeName)+'Data.mdb';
rarappdir:=ExtractFilePath(Application.ExeName)+'Winrar.exe';
dm1.dbconn.Close;
dm1.dbconn.ConnectionString:='';
backuptodir:=trim(eFilePath.Text)+'Backup'+FormatDateTime('yymmddhhmmss',Now)+'.ydk';
szcmd:=rarappdir+' a '+backuptodir+' '+datafiledir+ ' -ibck -p'+RarFilePwd;
WinExec(pchar(szcmd),SW_HIDE);
if FileExists(backuptodir) then
Application.MessageBox('备份完成',pchar(APPNAME),MB_ICONINFORMATION)
else
Application.MessageBox('备份失败',pchar(APPNAME),MB_ICONINFORMATION);
dm1.dbconn.Connected:=True;
btnBak.Enabled:=True;
end;
procedure TfBak.btnSelPathClick(Sender: TObject);
var
datafiledir:string;
begin
if SelectDirectory('请选择备份目录','',datafiledir) then eFilePath.Text:=datafiledir;
end;
end.