CFileDialog 를 이용해서 ListBox 에 추가하는건 저번에 봤다.
[공부할것../C / C++ / MFC] - CFileDialog 를 이용하여 다중 파일 목록 작성
근데 이건 매번 파일을 선택해줘야 해서 귀찮다.
매번 폴더내에 존재하는 모든파일을 다 선택하고싶다던가 그런경우 사용가능한 방법
-
CString tpath = _T("폴더 경로/*.*"); -
-
//검색 클래스 -
CFileFind finder; -
-
//CFileFind는 파일, 디렉터리가 존재하면 TRUE 를 반환함 -
BOOL bWorking = finder.FindFile(tpath); // -
-
CString fileName; -
CString DirName; -
-
while (bWorking) -
{ -
//다음 파일 / 폴더 가 존재하면다면 TRUE 반환 -
bWorking = finder.FindNextFile(); -
//파일 일때 -
if (finder.IsArchived()) -
{ -
//파일의 이름 -
CString _fileName = finder.GetFileName(); -
-
// 현재폴더 상위폴더 썸네일파일은 제외 -
if( _fileName == _T(".") ||_fileName == _T("..")||_fileName == _T("Thumbs.db") ) continue; -
-
fileName = finder.GetFileTitle(); -
m_ListBox.AddString(fileName);//읽어온 파일 이름을 리스트박스에 넣음 -
} -
// 디렉터리 일때 -
//if (finder.IsDirectory()) -
//{ -
// 필요하면 여기서 처리 -
//DirName = finder.GetFileName(); -
//} -
} -
return TRUE;
// 21.06.18. 수정
// 검색할 경로 및 파일
// 특정 확장자를 갖는 파일을 검색하고 싶으면 '경로/*.jpg' 등으로 사용
CString tpath = _T("폴더 경로/*.*");
// 검색 클래스
CFileFind finder;
// CFileFind는 파일, 디렉터리가 존재하면 TRUE 를 반환함
BOOL bWorking = finder.FindFile(tpath); //
CString fileName;
CString DirName;
while (bWorking)
{
//다음 파일 or 폴더 가 존재하면다면 TRUE 반환
bWorking = finder.FindNextFile();
// folder 일 경우는 continue
if (finder.IsDirectory() || finder.IsDot())
continue;
// 파일 일때
//파일의 이름
CString _fileName = finder.GetFileName();
// 현재폴더 상위폴더 썸네일파일은 제외
if(_fileName == _T("Thumbs.db") ) continue;
fileName = finder.GetFileTitle();
m_ListBox.AddString(fileName);
//읽어온 파일 이름을 리스트박스에 넣음
}
return TRUE;
'Programming > C, C++, MFC' 카테고리의 다른 글
[Function][MFC] 폴더 내 파일 갯수 확인하기 (0) | 2014.03.25 |
---|---|
프로그램 실행시간을 측정 해 보자! (0) | 2014.02.12 |
[Function][MFC] CFileDialog 를 이용하여 다중 파일 목록 작성 (0) | 2014.01.23 |
[Function][MFC] 폴더 경로 구하기 ( CString에 선택된 폴더의 절대경로를 저장하자 ) (0) | 2014.01.23 |
프로그램 구동 속도 를 줄이는 방법! (0) | 2013.11.20 |