MFCは、単一のファイル/ディレクトリ名/ファイルディレクトリ内のすべてのファイルを読み込みます

1.単一のファイル・パスを読みます

1  無効化()。
2  
3      のCFileDialog DLG(、NULL、NULL、TRUE OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_READONLY、
 4          TEXT(" サポートされているタイプ(* .JPG; * PNG、GIF *; * BMP; ...)| * .JPG;。。。* .PNG; * GIF、BMP * |ティフ。。(* TIFF; *。TIF)| * .TIFF; *。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 削除 [] BUFします。
    }

 

 

3.フォルダのパスを選択します

1  のCString m_saveFilePath。
2      TCHAR szPath [_MAX_PATH]。
3      BROWSEINFO双方向;
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