카테고리

  • 안드로이드
  • IOS
  • MFC
  • JAVA
  • AWS
  • LAMP
  • 여행&사진
  • 이런저런생활
  • 2015년 11월 11일 수요일

    MFC 폴더 생성 및 삭제

    출처 : http://mooyou.tistory.com/29


    // 디렉토리 생성
    // 디렉토리 생성 성공: 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;
    }

    댓글 없음 :

    댓글 쓰기