DELPHI中如何删除指定日期前的文件

时间:2021-12-25 14:06:46
我用DELPHI6写了个大型应用系统的后台管理程序,其中实现了SQL数据库备份管理,但还希望删除指定日期前的备份文件。我也知道SQL的企业管理中可以实现完整的备份管理。但为方便不熟悉SQL的用户使用,我必须提供这种直观简单的方式。请教各位高手怎么在DELPHI应用中删除指定日期前的备份文件?谢谢!

5 个解决方案

#1


遍历备份文件夹目录下的备份文件 判断备份文件的时间
遍历用findfirst findnext findclose

#2


如果你不想调用 findfirst.....等文件搜索函数,还有个办法,文件名都取固定的格式,比如  DByyyymmdd.BAK 这样的格式,如果要删除去年的备份,就用去年的日期从第一天到最后一天匹配到文件名,一个一个尝试删除。

#3


引用 2 楼 ahjoe 的回复:
如果你不想调用 findfirst.....等文件搜索函数,还有个办法,文件名都取固定的格式,比如  DByyyymmdd.BAK 这样的格式,如果要删除去年的备份,就用去年的日期从第一天到最后一天匹配到文件名,一个一个尝试删除。


这法子好像被经常使用

#4


谢谢大家,特别是1楼,问题高定!!!!

请大家分享:

procedure DeleteBakFile(MyPath,MyFile:string;Days:integer);
var Found:integer;
    MySearchRec:TSearchRec;
    FileName:string;
begin
  FileName:=MyPath+MyFile;
  Found:=FindFirst(FileName, faAnyFile, MySearchRec);
  while Found=0 do
  begin
    if (Date-FileDateToDateTime(MySearchRec.Time))>Days then
    begin
      DeleteFile(MyPath+MySearchRec.Name);
    end;
    Found:=FindNext(MySearchRec);
  end;
  FindClose(MySearchRec);
end;

#5


我觉得二楼三楼说的好呀
不用遍历全部文件,不错

#1


遍历备份文件夹目录下的备份文件 判断备份文件的时间
遍历用findfirst findnext findclose

#2


如果你不想调用 findfirst.....等文件搜索函数,还有个办法,文件名都取固定的格式,比如  DByyyymmdd.BAK 这样的格式,如果要删除去年的备份,就用去年的日期从第一天到最后一天匹配到文件名,一个一个尝试删除。

#3


引用 2 楼 ahjoe 的回复:
如果你不想调用 findfirst.....等文件搜索函数,还有个办法,文件名都取固定的格式,比如  DByyyymmdd.BAK 这样的格式,如果要删除去年的备份,就用去年的日期从第一天到最后一天匹配到文件名,一个一个尝试删除。


这法子好像被经常使用

#4


谢谢大家,特别是1楼,问题高定!!!!

请大家分享:

procedure DeleteBakFile(MyPath,MyFile:string;Days:integer);
var Found:integer;
    MySearchRec:TSearchRec;
    FileName:string;
begin
  FileName:=MyPath+MyFile;
  Found:=FindFirst(FileName, faAnyFile, MySearchRec);
  while Found=0 do
  begin
    if (Date-FileDateToDateTime(MySearchRec.Time))>Days then
    begin
      DeleteFile(MyPath+MySearchRec.Name);
    end;
    Found:=FindNext(MySearchRec);
  end;
  FindClose(MySearchRec);
end;

#5


我觉得二楼三楼说的好呀
不用遍历全部文件,不错