delphi删除文件的问题(50分)

  • 主题发起人 主题发起人 *呆客*
  • 开始时间 开始时间

*呆客*

Unregistered / Unconfirmed
GUEST, unregistred user!
我需要给我的access数据库备份(这个大家都知道是复制文件),其中有一个自动备份的功能,每天对数据库进行备份,这样一来,文件就会越来越多,所以我想增加一个保留最后若干次备份的功能,假设为最后三次吧,当备份的文件等于3个的时候,需要将最早的文件删除掉,然后再备份一个。这个应该怎么做?
 
写个INIFILES吧
 
你可以在命名备份文件时用日期来进行备份!下次备份时先检查日期.....
 
在数据库里加个表得了,
待删除文件表
备份文件名 备份文件日期
dbback1 2008-11-4
dbback2 2008-11-5
dbback3 2008-11-6

每次备份时:
select * from 待删除文件表 order by 待删除文件表.备份文件日期 DESC

delfile(待删除文件表.备份文件名);

数据库表中再添加一条待备份的数据库文件名记录

数据库备份。
 
获得文件时间,每天删除一个时间最早的——if 文件数 > 3
 
procedure DelFile(Directory: string;var List:TstringList);
var
Search, Src: TSearchRec;
RootDirectory: string;
FCount: Integer;
begin
Application.ProcessMessages;
//查找文件
RootDirectory := Directory;
if RootDirectory[Length(RootDirectory)] <> '/' then RootDirectory := RootDirectory + '/';
//先查找文件
if FindFirst(RootDirectory + '*.mdb', faAnyFile, Src) = 0 then
repeat
List.add(RootDirectory + Search.Name);
until FindNext(Src) <> 0;

//再查目录
if FindFirst(RootDirectory + '*.*', faDirectory, Search) = 0 then
repeat
if (Search.Name <> '.') and (Search.Name <> '..') then
if (Search.Attr and fadirectory) = fadirectory then
begin
//form1.lbl1.caption := '正在修改...' + RootDirectory + Search.Name;
DelFile(RootDirectory + Search.Name);
end;
until FindNext(Search) <> 0;
FindClose(Search);
end;

procedure TForm1.btn1Click(Sender: TObject);
var
list;Tstringlist;
begin
list:=Tstringlist.create;
DelFile('你的备份目录',List);
if list.count>=3 then
begin
for i:=0 to list.count-4 do
delfile(list);
end;
list.free;
end;

现写的,没在DELPHI中测试,你可以试一下,大致思路是这样的.
 
多人接受答案了。
 
后退
顶部