728x90
인터넷에 돌고 있는
MFC에서 폴더 선택해서 파일 리스트 출력 하는 소스코드
void CtestttDlg::OnBnClickedButton1()
{
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
//파일 선택 다이얼로그
strPathName1 = GetUserSelectFolder(_T("선택 파일"));
if(strPathName1.GetLength() == 0)
return;
SetDlgItemText(IDC_EDIT1, strPathName1);
GetFileList1(strPathName1);
}
버튼 1에 대한 소스코드
CString CtestttDlg::GetUserSelectFolder(CString strMsg)
{
ITEMIDLIST *pidlBrowse;
TCHAR pszPathname[1024]={0,};
BROWSEINFO BrInfo;
BrInfo.hwndOwner = GetSafeHwnd();
BrInfo.pidlRoot = NULL;
CString strUploadDir;
memset(&BrInfo, 0, sizeof(BrInfo));
BrInfo.pszDisplayName = pszPathname;
BrInfo.lpszTitle = strMsg;
BrInfo.ulFlags = BIF_RETURNONLYFSDIRS;
pidlBrowse = ::SHBrowseForFolder(&BrInfo);
if( pidlBrowse != NULL)
{
::SHGetPathFromIDList(pidlBrowse, pszPathname);
strUploadDir = pszPathname; // 폴더 경로
}
else
strUploadDir = _T("");
return strUploadDir;
}
폴더 선택에 대한 소스코드
void CtestttDlg::GetFileList1(CString strFolder)
{
CFileFind file;
BOOL b = file.FindFile(strFolder + _T("\\*.*")); // 모든 확장자를 다 사용.
// CString strMusicFilter = ".MP3.OGG.WMA.WAV"; // 필터링 하고 싶으면 이렇게 쓰면 됨
CString strFolderItem, strFileExt, strTempString;
while(b)
{
b = file.FindNextFile();
if(file.IsDirectory() && !file.IsDots()) // 디렉토리 발견시
{
strFolderItem = file.GetFilePath();
GetFileList1(strFolderItem); // 하위폴더를 검색하기 위해 재귀호출 발생
}
strFolderItem = file.GetFilePath();
strFileExt = strFolderItem.Mid(strFolderItem.ReverseFind('.')); // 확장자만 추출한다.
if (!file.IsDots()) // 파일 탐색 필터 정의에따라 해당 StringList에 추가
{
strFileExt.MakeUpper(); // strFileExt 에는 확장자 (.EXE 형태) 가 들어옴. 비교위해 대문자화 함
if( file.IsDirectory() ) continue; // 폴더만 남는 경우는 넣으면 안됨
strFolderItem.Replace(strPathName1, _T(""));
//m_list_box.AddString(strFolderItem);
int index = m_list_box.InsertString(-1,strFolderItem);
}
}
}
폴더 안의 파일 명을 리스트 박스에 출력 하는 소스코드
인터넷에 돌고 있는 폴더 선택 후
파일 출력하는 코드는 다 좋은데 현재...
폴더 별로 출력하는게 아니라 ... 파일명이나 폴더명으로 출력해서
아름답게 출력되지 않는 현상이 있다
이부분을 좀 더 수정해서 꾸며야겠음
728x90
'개발자 모드 > MFC' 카테고리의 다른 글
MFC INI 파일 설정값 읽어오기 (0) | 2021.09.10 |
---|---|
MFC UDP 통신에서 IP주소 CString 바로 사용 하는법 (0) | 2021.09.09 |
MFC checksum 비교 프로그램 (0) | 2021.05.29 |
MFC 파일 선택하여 EditConotrol에 표시하기 (0) | 2021.05.21 |
MFC EditControl 제어 하기 (0) | 2021.05.21 |