본문 바로가기
C++ 200제/코딩 IT 정보

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

by vicddory 2017. 2. 27.

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개

댓글