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);
}
조금이라도 도움이 되었길...
반응형
최근댓글