CString과 FindFirstFile, CFindFile을 사용하기 위한 헤더 파일 및 특정 폴더에서 10일 경과한 파일 자동 삭제하는 메소드 구현하기
Win32 API 개발에서 CString 사용하기: #include <atlstr.h>의 중요성
Win32 API 개발시에 아래와 같이 CString 을 사용할 필요가 있다. 이때는 #include <atlstr.h> 파일을 포함해주면 간단히 해결된다. MFC를 주로 개발하다가 Win32 API로 코드로 개발할 필요가 있을시 유형하게 사용할 수 있다. 이처럼 알면 간단한 것이지만, 모르면 하루 종일 답이 안 나오는 일을 하게 될 것입니다.
특정 폴더에서 10일 경과한 파일 자동 삭제하는 메소드 구현하기
아래 코드는 특정 폴더에 있는 파일에 대해서 일정시간이 지난 것은 지우도록 하는 메소드의 일부이다. 실제 파일 지우는 동작은 DeleteFile()에서 이루어지며, GetLogFileList()에서는 현재시간을 기준으로 10일이 경과한 파일은 삭제 버퍼에 저장하도록 한다.
void DIMManager::DeleteLogs()
{
TCHAR buf[1024]; ///< 현재 실행 경로를 저장하는 변수이다.
int nSize; ///< 경로의 길이를 저장한다.
CString strPath; ///< FullPath 경로를 저장하는 변수이다.
GetCurrentDirectory(1024, buf); ///< 현재 실행 파일의 경로를 저장한다.
//GetLogFileList(buf); ///< 10일 경과한 파일을 리스트로 저장하는 함수이다.
///< vector에는 일정시간이 경과한 로그 파일의 경로만 저장되어 있다.
nSize = 1;//m_vctLogFileList.size(); ///< get vector size.
for(int i = 0; i < nSize; i++) ///< 크기만큼 반복한다.
{
strPath = "";//m_vctLogFileList[i]; ///< get the file name in the vector.
DeleteFile(strPath); ///< deleting log files
}
}
CString, FindFirstFile 및 CFindFile을 사용하기 위한 헤더 파일
CString을 사용하기 위해서 <atlstr.h> 헤더파일을 include해야하는 것을 알아봤으며, 디렉토리를 검색하기위해서는 Win32에서 FindFirstFile, FindNextFile 함수를 써야하고, MFC 에서는 CFindFile이 있는데, 이것을 사용하기 위해서는 <afx.h>를 include해야 합니다. 현재 빌드하고 있는 프로젝트가 Win32 API인지 MFC 인지에 따라서 적절하게 사용하면 됩니다.