// 디렉토리 생성// 디렉토리 생성 성공: TRUE, 실패: FALSE 반환// 함수 사용예: CreateDir(_T("C:\\dir_name\\"));BOOL CreateDir(CString dir){ CFileFind file; CString strFile = _T("*.*"); BOOL bResult = file.FindFile(dir + strFile); if(!bResult) { bResult = CreateDirectory(dir, NULL); } return bResult;}
// 디렉토리 삭제
// 디렉토리내에 존재하는 하위 폴더 및 모든 파일 삭제
// 함수 사용예: DeleteDir(_T("C:\\dir_name\\*.*"));
BOOL DeleteDir(CString dir)
{
if(dir == _T(""))
{
return FALSE;
}
BOOL bRval = FALSE;
int nRval = 0;
CString szNextDirPath = _T("");
CString szRoot = _T("");
CFileFind find;
// Directory가 존재 하는지 확인 검사
bRval = find.FindFile(dir);
if(bRval == FALSE)
{
return bRval;
}
while(bRval)
{
bRval = find.FindNextFile();
// . or .. 인 경우 무시한다.
if(find.IsDots() == TRUE)
{
continue;
}
// Directory 일 경우
if(find.IsDirectory())
{
szNextDirPath.Format(_T("%s\\*.*"), find.GetFilePath());
// Recursion function 호출
DeleteDir(szNextDirPath);
}
// file일 경우
else
{
//파일 삭제
::DeleteFile(find.GetFilePath());
}
}
szRoot = find.GetRoot();
find.Close();
Sleep(1);
bRval = RemoveDirectory(szRoot);
return bRval;
}
댓글 없음 :
댓글 쓰기