mfc打開文件夾獲取文件
A. 給一個文件夾路徑D:\Data,裡面有很多個文件,怎麼用MFC程序打開這個文件夾並遍歷文件夾下的所有文件
MFC下,還是用CFileFind類比較方便。
CFileFind ff;
CString strUDDir += "d:\\data\\*.*";
BOOL res = ff.FindFile(strUDDir);
while(res)
{
res = ff.FindNextFile();
//不遍歷子目錄
if(!ff.IsDirectory() && !ff.IsDots())
{
CString strFile = ff.GetFileName();
…// 在這里寫需要的代碼
}
}
ff.Close(); // 不要忘記關閉
B. mfc怎麼實現打開文件夾
voidCXXXDlg::OpenFolder()
{
BROWSEINFObi;
ZeroMemory(&bi,sizeof(BROWSEINFO));
//添加提示語句
bi.lpszTitle=_T("請選擇文件夾");
//添加"新建文件夾項"和"編輯框"
bi.ulFlags=BIF_NEWDIALOGSTYLE|BIF_EDITBOX;
//顯示一個對話框讓讓用戶選擇文件夾
LPITEMIDLISTpidl=SHBrowseForFolder(&bi);
charszFolder[_MAX_PATH];
memset(szFolder,0,sizeof(szFolder));
CStringstrFolder=_T("");
if(pidl!=NULL)
{
SHGetPathFromIDList(pidl,szFolder);
//保存文件夾路徑存
strFolder.Format(_T("%s"),szFolder);
afxMessageBox(strFolder);
}
else
{
return;
}
}
C. 如何在mfc中實現打開一個文件,獲取文件名
這個滿足你的要求s返迴文件路徑#defineDLG_FILTER"ALLFiles(*.*)|*.*||"#defineDLG_EXT"*"CFileDialogdlg(TRUE,_T(DLG_EXT),NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT,_T(DLG_FILTER));if(dlg.DoModal()==IDOK){POSITIONpos=dlg.GetStartPosition();while(pos!=0){CStrings=dlg.GetNextPathName(pos);}}下面代碼,可以選擇文件夾,會返迴文件夾的路徑需要自己查找每個文件char*GetPath(HWNDhWnd,char*pBuffer){BROWSEINFObf;LPITEMIDLISTlpitem;memset(&bf,0,sizeofBROWSEINFO);bf.hwndOwner=hWnd;bf.lpszTitle="選擇路徑";bf.ulFlags=BIF_RETURNONLYFSDIRS;//屬性你可自己選擇lpitem=SHBrowseForFolder(&bf);if(lpitem==NULL)//如果沒有選擇路徑則返回0return0;//如果選擇了路徑則復制路徑,返迴路徑長度SHGetPathFromIDList(lpitem,pBuffer);returnpBuffer;}
D. 在VS2010中MFC打開文件對話框並獲取文件名的操作
fileDlg.m_ofn.lpstrTitle=L"打開BMP對話框";
你將原有的 標題的指針 地址改變了 導致退出的時候 釋放出現問題
先保存原有的
然後在 彈出對話框之後
賦值 回去
E. MFC獲取指定文件夾文件目錄
在MFC中,使用CFileFind類,可以枚舉一個目錄下的所有文件和子目錄。
示例:
voidListFolder(constCString&sPath)
{
CFileFindff;
BOOLbFound=ff.FindFile(sPath+"\*.*");
while(bFound)
{
bFound=ff.FindNextFile();
if(ff.IsDirectory())//是目錄
{
if(!ff.IsDots())//不是本級目錄或父目錄(.和..)
ListFolder(ff.GetFilePath());//遞歸子目錄
}
else
{
AfxMessageBox("文件:"+ff.GetFilePath());
}
}
ff.Close();
}
F. 如何用mfc訪問一個文件夾,並存儲文件夾內所有文件的路徑
CFileFind finder;
if(finder.IsDirectory() && !finder.IsDots())
{
// 是子文件夾,遞歸調用本函數
}
else
{
finder.GetFilePath(); // 獲取文件的完整路徑
finder.GetFileName(); // 獲取文件名,包括擴展名
}
G. MFC按鈕打開選擇一個文件夾,然後獲得文件夾中的所有txt文件名稱!
這個滿足你的要求
s返迴文件路徑
#define
DLG_FILTER
"ALL
Files
(*.*)|*.*||"
#define
DLG_EXT
"*
"
CFileDialog
dlg(TRUE,
_T(DLG_EXT),
NULL,
OFN_HIDEREADONLY
|
OFN_OVERWRITEPROMPT
|
OFN_ALLOWMULTISELECT,
_T(DLG_FILTER));
if
(dlg.DoModal()
==
IDOK)
{
POSITION
pos
=
dlg.GetStartPosition();
while
(pos
!=
0)
{
CString
s
=
dlg.GetNextPathName(pos);
}
}
下面代碼,可以選擇文件夾,會返迴文件夾的路徑
需要自己查找每個文件
char*
GetPath(HWND
hWnd,char*
pBuffer)
{
BROWSEINFO
bf;
LPITEMIDLIST
lpitem;
memset(&bf,0,sizeof
BROWSEINFO);
bf.hwndOwner=hWnd;
bf.lpszTitle=
"選擇路徑";
bf.ulFlags=BIF_RETURNONLYFSDIRS;
//屬性你可自己選擇
lpitem=SHBrowseForFolder(&bf);
if(lpitem==NULL)
//如果沒有選擇路徑則返回
0
return
0;
//如果選擇了路徑則復制路徑,返迴路徑長度
SHGetPathFromIDList(lpitem,pBuffer);
return
pBuffer;
}
H. 怎樣用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用於指定需要搜索的文件後綴名
I. 急!!求懂MFC的大佬幫我解答。MFC單文檔工具欄打開文件的路徑是怎麼獲取的,求解。盡量詳細點
首先從對話框的按鈕處理函數中獲得mainframe指針
cmainframe *pmain=(cmaimframe *)afxgetapp()->m_pmainwnd;
然後獲得相應視圖指針cyourview *pview=(cyourview *)pmain->getactiveview();
最後獲得視圖對應的當前文檔指針 cdocument * pcurrentdoc =(cframewnd *)m_pmainwnd->getactivedocument();
J. mfc 如何打開文件
讀取EXCEL文檔里的數據,因為EXCEL是有格式的,所以和讀取TXT等數據文件完全不同。
如果TXT,那麼使用CFile類Open打開文件就可以讀取數據了,相對比較簡單。
讀取EXCEL文檔里的數據,需要用ADO數據源或者OLE的Office組件,在Open菜單響應函數中設置數據源並進行資料庫操作,如果初學,可能會比較困難,需要熟悉的東西很多。
建議:EXCEL文件可以另存為csv格式,這個是純文本的,可以直接CFile按照文本文檔讀取,如果不是項目需求,這個實現比較適合初學者。