- 人气:
- 放大
- 缩小
- 二维码
- 赞赏
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;