『壹』 MFC點擊按鈕打開對話框選擇文件夾(不是文件)
選擇所選擇的文件夾,獲取文件夾的路徑:
CString m_FileDir;
BROWSEINFO bi;
ZeroMemory(&bi, sizeof(BROWSEINFO));
bi.hwndOwner = m_hWnd;
bi.ulFlags = BIF_RETURNONLYFSDIRS;
LPITEMIDLIST pidl = SHBrowseForFolder(&bi);
BOOL bRet = FALSE;
TCHAR szFolder[MAX_PATH*2];
szFolder[0] = _T('\0');
if (pidl)
{
if (SHGetPathFromIDList(pidl, szFolder))
bRet = TRUE;
IMalloc *pMalloc = NULL;
if (SUCCEEDED(SHGetMalloc(&pMalloc))
&& pMalloc)
{
pMalloc->Free(pidl);
pMalloc->Release();
}
}
m_FileDir = szFolder;//選擇的文件夾路徑
查找所有MDB文件(記錄數組自己寫吧)
CFileFind ff;
BOOL res = ff.FindFile(m_FileDir+"*.mdb");
while(res)
{
res = ff.FindNextFile();
//不遍歷子目錄
if(!ff.IsDirectory() && !ff.IsDots())
{
CString strFile = ff.GetFileName();
…// 在這里寫需要的代碼
}
}
ff.Close(); // 不要忘記關閉
『貳』 怎樣用mfc找出文件夾路徑,並讀取文件夾內所有圖片
CFileFind find;
CString Path = lpszPath;
CString lpsz = Path +L"\\";
Path = Path +L"\\*.*";
BOOL IsFind = find.FindFile(Path);
while(IsFind )
{
IsFind=find.FindNextFile();
//如果是"."則不掃描
if(find.IsDots())
continue;
//是目錄,繼續掃描此目錄
else if(find.IsDirectory())
{
CString strPath = lpszPath;
strPath = strPath + L"\\" + find.GetFileName();
ScanDiskFile(strPath);
}
//文件
else
{
//獲得文件的路徑
m_strFile = find.GetFileName();
CString extend = m_strFile.Right(m_strFile.GetLength() - m_strFile.ReverseFind('.') - 1);//取得擴展名
if (extend == m_ext_one | extend == m_ext_two)//m_ext_now為你要查找的文件擴展名
{
m_strArray.Add(lpsz + m_strFile);
}
}
}
find.Close();
m_ext_one、m_ext_two用於指定需要搜索的文件後綴名
『叄』 MFC打開文件對話框怎麼設置默認文件夾
打開文件對話框裡面有一項可以設置打開出示路徑,每次關閉程序的時候,保存路徑(保存到文件或注冊表),下次運行程序的時候讀出來對打開文件對話框相關參數進行設置即可.
『肆』 求教!C++gui中點擊導入來選擇文件夾的路徑
可以使用MFC的CFileDialog類。
CFileDialog dlg(TRUE,NULL,NULL,OFN_FILEMUSTEXIST,strFilter);
if (IDOK != dlg.DoModal()) {
return;
}
CString strPath = dlg.GetPathName();
strPath就是選中圖片的全路徑。
然後調用SetDlgIItemText( XXX,strPath).就可以把路徑顯示在textbox中。其中XXX為textbox的控制項ID.