MFC는 단일 파일 / 디렉토리 이름 / 파일 디렉토리에있는 모든 파일을 읽을

1. 하나의 파일 경로를 읽기

1  무효화 ();
2  
3      CFileDialog에 DLG (TRUE, NULL, NULL, OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_READONLY,
 4          텍스트 ( " 지원 유형 (* .JPG,.. * PNG로 * GIF * BMP,. ...) | * .JPG, * . .PNG * GIF;. * BMP | 티파니 (.. * 티파니, * TIF) | * 티파니,. * TIF | 모든 파일 (*. *) | * ||. " ), NULL);
5      dlg.m_ofn.nFilterIndex = 1 ;
6      dlg.m_ofn.hwndOwner = m_hWnd;
7      dlg.m_ofn.lStructSize = 를 sizeof (OPENFILENAME);
8      dlg.m_ofn.lpstrTitle = TEXT ( " 시작 이미지 ... \ 0 " );
9     = dlg.m_ofn.nMaxFile MAX_PATH;
 10      IF (dlg.DoModal () == IDOK)
 . 11      {
 12은          m_Path = dlg.GetPathName ();
 13이다          m_isOpen = ; TRUE
 14          ; 때문에 updateData (FALSE)
 15      }
 16      다른 
. 17          ,
 18는      // 왼쪽 사진은 이미지 디스플레이 제어 
(19)      의 char *에 , S_PATH
 20      ; USES_CONVERSION
 21      S_PATH = T2A (m_path)를;

 

2. 여러 파일 이름을 읽어

1 개     벡터 <CString을> fileDict; 
     CFileDialog에 DLG (TRUE, _T ( " * " ), NULL, OFN_ALLOWMULTISELECT | OFN_FILEMUSTEXIST, _T ( " 所有文件파일 (* *) | * ||.. " ), NULL); 2 DWORD의 MAXFILE = 500 * MAX_PATH; // 最多打开500个文件 3 dlg.m_ofn.nMaxFile = MAXFILE; 4 TCHAR * = BUF 새로운 TCHAR [MAXFILE]; 5 memset 함수 (BUF, 0 , 는 sizeof (TCHAR) * MAXFILE); 6 dlg.m_ofn.lpstrFile = (BUF); 7 8 INTiReturn = dlg.DoModal (); 9 경우 (iReturn == IDCANCEL) 10 { 11 ; 12 } 13 pos 위치 = dlg.GetStartPosition (); 14 일 동안 (POS! = NULL) 15 { 16 fileDict.push_back (dlg.GetNextPathName (POS)); 17 } 18 19 삭제 [] 버피;
    }

 

 

3. 폴더 경로를 선택

1  CString을 m_saveFilePath;
2      TCHAR szPath [_MAX_PATH];
3      BROWSEINFO BI;
4      bi.hwndOwner = GetSafeHwnd ();
5      bi.pidlRoot = NULL;
6      bi.lpszTitle = _T ( " 请选择图片路径" );
7      bi.pszDisplayName = szPath;
8      bi.ulFlags =의 BIF_RETURNONLYFSDIRS;
9      bi.lpfn = NULL;
10      bi.lParam = NULL;
11  
12      LPITEMIDLIST pItemIDList = SHBrowseForFolder ( BI);
13      의 경우(pItemIDList)
 14      {
 15 일          경우 (SHGetPathFromIDList (pItemIDList, szPath))
 16          {
 17              m_saveFilePath = szPath;
18              m_saveFilePath m_saveFilePath + = _T ( " \\ " );
19          }
 20  
21          // 메모리를 회피 사용 IMalloc 인터페이스 누설   
22          IMalloc을 * pMalloc;
23          경우 (SHGetMalloc (pMalloc)! = NOERROR)
 24          {
 25              TRACE (_T은 ( " IMalloc 인터페이스 \ n을 얻을 수 없습니다" ));
 26          }
 27  
28          pMalloc-> 무료 (pItemIDList)
 (29)          의 경우 (pMalloc)
 30              pMalloc-> 릴리스 ();
 31          때문에 updateData) (FALSE;
 32      }

 

추천

출처www.cnblogs.com/sclu/p/11599499.html