// 디렉토리 생성// 디렉토리 생성 성공: 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;
}
댓글 없음 :
댓글 쓰기