Programming/C, C++, MFC

[Function][MFC] CFileDialog 를 이용하여 다중 파일 목록 작성

매직블럭 2014. 1. 23. 09:43

CFileDialog 를 이용하여 파일의 확장자를 제외한 파일명만 가져오는 방법.


다양한 방법으로 수정 가능.



  1.         CString str = _T("All Files(*.*)|*.*|");        // 선택할 파일 종류
  2.         CString File, filem, strre;
  3.         CString strFileList;
  4.  
  5.         CFileDialog dlg(TRUE, NULL, NULL, OFN_ALLOWMULTISELECT, str, this);
  6.  
  7.         const int c_cMaxFiles = 20000 /*선택할 파일 숫자*/ ;     
                                    // 메모리 부족현상으로 확장 안해주면 몇개 못씀
  8.         const int c_cbBuffSize = (c_cMaxFiles * (MAX_PATH + 1)) + 1;
  9.         dlg.GetOFN().lpstrFile = strFileList.GetBuffer(c_cbBuffSize);
  10.         dlg.GetOFN().nMaxFile = c_cbBuffSize;
  11.  
  12.         if( dlg.DoModal() == IDOK)
  13.         {
  14.                 for(POSITION pos=dlg.GetStartPosition(); pos != NULL;)
  15.                 {
  16.                         // 전체삭제는 ResetContent
  17.                         File = dlg.GetNextPathName(pos);
  18.  
  19.                         filem = File.Right( File.GetLength()-File.ReverseFind( _T('\\') )-1 );
  20.                         // 경로를 제외한 파일명       
  21.                        
  22.                         filem = filem.Left( filem.GetLength() - 4 );
  23.                         // 확장자 제거 ( ex - .jpg )
  24.  
  25.                         m_ListBox.AddString( filem );
  26.                 }
  27.  
  28.  
  29.         }
  30.  
  31.         m_nFileCnt = m_ListBox.GetCount();
  32.         strre.Format( _T("%dea load"), m_nFileCnt );
  33.         AfxMessageBox( strre );