mfc打開文件夾或文件
⑴ 如何使用VC++的MFC打開一個文件夾
//選擇文件夾
CString GetDirectory()
{
BROWSEINFO bi;
char name[MAX_PATH];
ZeroMemory(&bi,sizeof(BROWSEINFO));
bi.hwndOwner = AfxGetMainWnd()->GetSafeHwnd();
bi.pszDisplayName = name;
bi.lpszTitle = "選擇文件夾目錄";
bi.ulFlags = BIF_RETURNFSANCESTORS;
LPITEMIDLIST idl = SHBrowseForFolder(&bi);
if(idl == NULL)
return "";
CString strDirectoryPath;
SHGetPathFromIDList(idl, strDirectoryPath.GetBuffer(MAX_PATH));
strDirectoryPath.ReleaseBuffer();
if(strDirectoryPath.IsEmpty())
return "";
if(strDirectoryPath.Right(1)!="\\")
strDirectoryPath+="\\";
return strDirectoryPath;
}
⑵ 怎麼在MFC中打開一個文件,如單擊一個按鈕,然後彈出選擇文件的框框,我需要打開這個文件!
//文件屬性定義
CString filename;
CString fileext;//文件擴展名
CString filepathname;
//選擇文件
CFileDialog fpdlg(TRUE, NULL, NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"(文件類型)(*.dat)|*.dat|(文件類型)(*.sth)|*.sth|所有文件(*.*)|*.*||",NULL);
if(fpdlg.DoModal() == IDOK)
{
filename = fpdlg.GetFileName();
fileext = fpdlg.GetFileExt();//文件擴展名
filepathname = fpdlg.GetPathName();
//UpdateData(FALSE);
}
//打開文件
CFile fp;
if(filepathname ==_T(""))
{
//AfxMessageBox("請選擇文件!");
return ;
}
if(!(fp.Open((LPCTSTR)filepathname,CFile::modeRead)))
{
AfxMessageBox("文件打開失敗!");
return ;
}
//讀取文件
fp.SeekToEnd();
unsigned long len = fp.GetLength();
char* buff;
buff=new char[len+1];
fp.SeekToBegin();
if(fp.Read(buff,len)<1)
{
fp.Close();
}
fp.Close();
⑶ MFC打開文件夾
void CXXXDlg::OpenFolder(){ BROWSEINFO bi; ZeroMemory(&bi,sizeof(BROWSEINFO)); //添加提示語句 bi.lpszTitle= _T("請選擇文件夾"); //添加"新建文件夾項"和"編輯框" bi.ulFlags = BIF_NEWDIALOGSTYLE | BIF_EDITBOX; // 顯示一個對話框讓讓用戶選擇文件夾 LPITEMIDLIST pidl = SHBrowseForFolder(&bi); char szFolder[_MAX_PATH]; memset(szFolder, 0, sizeof(szFolder)); CString strFolder = _T(""); if (pidl != NULL) { SHGetPathFromIDList(pidl, szFolder); //保存文件夾路徑存 strFolder.Format(_T("%s"), szFolder); afxMessageBox(strFolder); } else { return; }}
⑷ mfc 如何打開文件
讀取EXCEL文檔里的數據,因為EXCEL是有格式的,所以和讀取TXT等數據文件完全不同。
如果TXT,那麼使用CFile類Open打開文件就可以讀取數據了,相對比較簡單。
讀取EXCEL文檔里的數據,需要用ADO數據源或者OLE的Office組件,在Open菜單響應函數中設置數據源並進行資料庫操作,如果初學,可能會比較困難,需要熟悉的東西很多。
建議:EXCEL文件可以另存為csv格式,這個是純文本的,可以直接CFile按照文本文檔讀取,如果不是項目需求,這個實現比較適合初學者。
⑸ mfc 如何打開文件
讀取EXCEL文檔里的數據,因為EXCEL是有格式的,所以和讀取TXT等數據文件完全不同。
如果TXT,那麼使用CFile類Open打開文件就可以讀取數據了,相對比較簡單。
讀取EXCEL文檔里的數據,需要用ADO數據源或者OLE的Office組件,在Open菜單響應函數中設置數據源並進行資料庫操作,如果初學,可能會比較困難,需要熟悉的東西很多。
建議:EXCEL文件可以另存為csv格式,這個是純文本的,可以直接CFile按照文本文檔讀取,如果不是項目需求,這個實現比較適合初學者。
⑹ 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;
}
}
⑺ mfc如何打開一個文件夾下的所有的文件
可不可以給我發個,能夠打開已知文件名.pdf的文件程序 也是按鍵觸發
⑻ MFC中想實現打開文件或文件夾,該怎麼實現呢
把"通過選擇得到一個文件/文件夾的路徑" 這些代碼實現 寫到某個函數里,不是寫到按鈕實現的函數里就行了。例如:
【以下代碼中 filePathFile就是你想要的路徑】
在主體函數中:
CFileDialog *lpszOpenFile; //定義一個CfileDialog對象
//生成一個對話框
lpszOpenFile = new CFileDialog
(TRUE,"abc.txt","",OFN_FILEMUSTEXIST |OFN_HIDEREADONLY , "文件類型(*.txt)|*.txt|所有文件(*.*)|*.*|");
if(lpszOpenFile->DoModal() == IDOK )//假如點擊對話框確定按鈕
{
filePathName = lpszOpenFile->GetPathName();//得到打開文件的路徑
}
if(!file.Open(filePathName,CFile::modeRead))
{
MessageBox("can not open file!");
return;
}
⑼ 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;
}
⑽ mfc打開文件夾
CFileDialog fileDlg(TRUE);
fileDlg.m_ofn.lpstrTitle="我的文件打開對話框";
fileDlg.m_ofn.lpstrFilter="Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0";
fileDlg.DoModal()