티스토리 뷰

목차

    MFC 폴더 탐색기 예제 소스, 윈도우 다이얼로그 5개


    MFC 폴더 탐색기 다이얼로그 예제입니다.


    CodeProject를 비롯한 국내외 사이트의 예제 중 쓸만한 것 4+1종입니다. 전체 프로젝트랑 실행 파일을 첨부했으니 참조하세요. 소스 코드는 알아서들 분석해 보아요 ㅎ 먼저 소개할 예제는 SHFileOperation을 사용하지 않고 파일과 폴더의 복사, 이동, 삭제 구현한 다이얼로그 소스입니다.




    MFC 폴더 탐색기 예제 1


    MFC 탐색기 - NONE SHFileOperation[윈도우 다이얼로그] MFC 탐색기 - NONE SHFileOperation


    OverwriteMode를 설정하면

    - 복사하려는 폴더에 복사하려는 파일이나 폴더가 존재하면 덮어 씁니다.


    OverwriteMode를 설정하지 않으면

    - 복사하려는 폴더에 새파일들이 생성됩니다.


    MFC 탐색기 - NONE SHFileOperation2[gui 프로그래밍] MFC 탐색기 - NONE SHFileOperation2


    복사하려는 폴더에 test.txt란 파일이 이미 존재한다면, "Copy (n)"순으로 새로운 파일이 생성됩니다.


    AskIfReadonly를 설정하면

    - 읽기 전용의 파일을 삭제할 때, 경고 메세지가 뜹니다.


    AskIfReadonly를 설정하지 않으면

    - 경고 메세지 없이 삭제됩니다.


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    #include "stdafx.h"
    #include "FileOperations.h"
     
    CFileOperation fo;
    fo.SetOverwriteMode(false);
     
    if (!fo.Copy("c:\\source""c:\\dest"))
    {
        fo.ShowError(); // 에러 메세지로 폴더를 확인할 수 있습니다
    }
     
    fo.SetAskIfReadOnly();   
     
    if (!fo.Delete("c:\\source")) 
    {
        fo.ShowError(); // 에러 메세지로 폴더를 확인할 수 있습니다
    }
    cs


    이외에 다른 에러 메세지 출력 함수로는, GetErrorCode(), GetErrorString(), ShowError()가 있습니다.


    마지막으로 기본적으로 제공되는 함수 리스트는 아래와 같습니다.


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    bool Delete(CString sPathName); 
    bool Copy(CString sSource, CString sDest); 
    bool Replace(CString sSource, CString sDest);
    bool Rename(CString sSource, CString sDest); 
     
    CString GetErrorString(); 
    DWORD GetErrorCode(); 
     
    void ShowError();
    void SetAskIfReadOnly(bool bAsk = true); 
     
    bool IsAskIfReadOnly();
     
    void SetOverwriteMode(bool bOverwrite = false);
     
    bool IsOverwriteMode(); 
    bool IsAborted();
    cs


    아래부터는 기본적인 예제 4종입니다.

    MFC 폴더 탐색기 예제 2

    프로젝트 FolderDlg_Proj.zip

    실행파일 FolderDlg.exe


    MFC 탐색기 - CFolderDialog Demo[윈도우 다이얼로그] MFC 탐색기 - CFolderDialog Demo


    MFC 폴더 탐색기 예제 3

    프로젝트 CustomBrowseFolders.zip

    실행파일 CustomBrowseFolders.exe


    MFC 탐색기 - CustomBrowseFolders[gui 프로그래밍] MFC 탐색기 - CustomBrowseFolders


    MFC 폴더 탐색기 예제 4

    프로젝트 GetFolder_Demo.zip

    실행파일 GetFolder_Demo.exe

    MFC 탐색기 - GetFolder[윈도우 다이얼로그] MFC 탐색기 - GetFolder


    MFC 폴더 탐색기 예제 5

    프로젝트 SHBrowseForFolder.zip

    실행파일 SHBrowseForFolder.exe


    MFC 탐색기 - SHBrowseForFolder[gui 프로그래밍] MFC 탐색기 - SHBrowseForFolder


    세번째에 소개된 GetFolder_Demo 프로젝트는 cpp 파일 하나로 구성이 되어 있으니, 코드를 보면서 감을 잡아 보세요. 복잡하지 않습니다.



    관련 글

    MFC dll에서 다이얼로그 생성이 안 될때 (윈도우 Dialog)

    MFC 다이얼로그를 항상 위로 설정 (최상위 고정)

    MFC 스크롤바, 다이얼로그 예제 (동적 Scroll Bar)




    ⓒ written by vicddory

    MFC 폴더 탐색기 예제 소스, 윈도우 다이얼로그 5개