MFC로 프로그래밍을 하다가 저장된 영상중 특정일자가 지난 파일들을 지워야 하는 경우가 발생하였다. 보통 루프레코딩이라하여 영상촬영시 한정적인 저장소를 이용하여 지속적으로 촬영하기 위한 방법이다.

     

      이 방법을 활용하면 지정일 이전의 파일을 모두 지워야 하는 기능을 쉽게 구현할 수 있다. 물론, 다른 여러가지 방법이 있겠지만...

     

    순서는 현재 날자를 가져오고 CTimeSpan()을 이용하여 미래 또는 과거의 시간을 얻어올 수 있다. 만약, DB를 사용할 수 있다면 Expired Day를 지정하는데 이용할 수 있을 것이며, 필자와 같이 파일이름을 날자로 만든경우에는 생성된 문자열을 이용하여 삭제가 가능한 코드를 만들수 있다.

     

    예제 코드는 아래를 참조한다.

     

    void calcDate(int offset)
    {
        SYSTEMTIME stTime;
        CString strTargetDay;
        GetLocalTime(&stTime);
      
        CTime tDay(stTime); //Local Time을 CTime으로 변환
        tDay += CTimeSpan(offset,0,0,0); // 현재시간에서 offset일 이전 또는 이후
     
        stTime.wYear = (WORD)tDay.GetYear();
        stTime.wMonth = (WORD)tDay.GetMonth();
        stTime.wDay = (WORD)tDay.GetDay();
     
        strTargetDay.Format("%04d%02d%02d",stTime.wYear, stTime.wMonth,stTime.wDay);
     
        AfxMessageBox(strTargetDay);
    }

     

    조금이라도 도움이 되었길...

     

     

    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기