delphi 查找并删除过期的日志目录


本文整理自网络,侵删。

 
uses ShellAPI,DateUtils;

procedure  RemoveLogDirectory(DirecName: string);
var
  F: TSHFILEOPSTRUCT;
begin
  try
    FillChar(F, SizeOf(F), 0);
    with F do
    begin
      Wnd := 0;
      wFunc := FO_DELETE;
      pFrom := PChar(DirecName+#0);
      pTo := PChar(DirecName+#0);
      ///可还原无确认错误提示
      fFlags := FOF_NOCONFIRMATION+FOF_NOERRORUI;
    end;
    SHFileOperation(F);
  except
  end;
end;

procedure  DeleteLogDirc(LogPath: string;Days: Integer);
var
  Sr1 : TsearchRec;
  PathStr : string;
begin
  PathStr := LogPath;
  if FindFirst(PathStr+'*.*',faAnyFile,SR1)=0 then
  begin
    if (Sr1.Name <>'.') and (SR1.Name <> '..') then
    begin
      if SR1.Attr = faDirectory then
      begin
        if Sr1.Name <(FormatDateTime('YYYYMMDD',IncDay(Now,-Days))) then
          RemoveLogDirectory(PathStr+Sr1.Name);
      end;
    end;
    while FindNext(SR1)=0 do
    begin
      if (Sr1.Name <>'.') and (SR1.Name <> '..') then
      begin
        if SR1.Attr = faDirectory then
        begin
          if Sr1.Name <(FormatDateTime('YYYYMMDD',IncDay(Now,-Days))) then
            RemoveLogDirectory(PathStr+Sr1.Name);
        end;
      end;
    end;
    FindClose(SR1);
  end;
end;

相关阅读 >>

Delphi 修改内存

Delphi 快速删除非空文件夹

Delphi写的简单的文件的打开和关闭

Delphi parent属性的另类用法

Delphi firedac 下的 sqlite [5] - 数据的插入、更新、删除

Delphi 获取本地计算机上的com口列表

Delphi里实现文件格式关联应用程序的功能

Delphi三种弹窗

Delphi 替换指定字符串的函数

Delphi 的字符及字符串 - char、ansichar、widechar、pchar、pansichar、pwidechar

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...