델파이

델파이/delphi ] 프로그램 Log 삭제 방법

il-ma-re 2024. 7. 17. 10:14
728x90

안녕하세요, 일마레입니다.

 

얼마전에 프로그램 LOG를 생성하는 방법을 안내해 드렸는요.

 

계속 사용하다 보면 LOG도 무시 못할 정도로 쌓이게되죠.

그래서 오늘은 삭제 하는 방법을 알려드리려고 해요.

 

아래 안내해 드리는 내용 확인하시고, 좋은 하루 보내세요!

function LogFileDel : Boolean;
var
    DirInfo: TSearchRec;
    r : Integer;
    ts : TStringList;
begin
    try
        r := FindFirst(ExtractFilePath(Application.ExeName)+'\log\*.*', FaAnyfile, DirInfo);

        while r = 0 do  begin
           if ((DirInfo.Attr and FaDirectory <> FaDirectory) and
              (DirInfo.Attr and FaVolumeId <> FaVolumeID)) then
           begin
                  if  Copy(DirInfo.Name, 1, 8) < FormatDateTime('YYYYMMDD', Now - 60) then
                  begin
                      try
                         ts := TStringList.Create;
                         if FileExists(ExtractFilePath(Application.ExeName)+'log\'+ DirInfo.Name) then
                         begin

                            ts.LoadFromFile(ExtractFilePath(Application.ExeName)+'log\'+DirInfo.Name);                                                          // 로그에 중요한 데이터를 남기는 경우에는 클리어 하신 후 한 번 저장해 주세요.
                            // 데이터복구 시 내용이 유출될 수 있습니다.
                            // 그렇지 않은 경우에는 아래 두줄은 패스해도 무관합니다.!
                            ts.Clear; 
                            ts.SaveToFile(ExtractFilePath(Application.ExeName)+'log\'+DirInfo.Name);
                         end;
                      finally
                         ts.free;
                      end;
                      DeleteFile(pChar(ExtractFilePath(Application.ExeName)+'\log\' + DirInfo.Name));
              end;
           end;
           r := FindNext(DirInfo);
        end;
        SysUtils.FindClose(DirInfo);
    except on E:Exception do
      begin
          ShowMessage(E.Message);
      end;
    end;
end;

 

도움이 되었기를 바랍니다.

728x90
LIST