当前位置:首页 » 文件管理 » mfc打开文件夹获取文件

mfc打开文件夹获取文件

发布时间: 2022-04-28 02:42:42

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按照文本文档读取,如果不是项目需求,这个实现比较适合初学者。

热点内容
erpjava 发布:2024-11-14 23:52:23 浏览:252
电脑版地平线四怎么连上服务器 发布:2024-11-14 23:46:42 浏览:471
ios怎么变安卓 发布:2024-11-14 23:46:36 浏览:332
win7共享xp打印机拒绝访问 发布:2024-11-14 23:45:29 浏览:749
引起资源配置失效的原因有哪些 发布:2024-11-14 23:35:22 浏览:14
c语言打字 发布:2024-11-14 23:11:06 浏览:892
存储程序和程序控制的原理 发布:2024-11-14 22:53:23 浏览:322
python读取json数据 发布:2024-11-14 22:51:52 浏览:931
钉线画算法 发布:2024-11-14 22:24:59 浏览:47
应用一直获取配置失败是怎么回事 发布:2024-11-14 22:24:12 浏览:148