问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

MFC中获取多个文件路径的方法,获取的多文件路径无法读取doc->LoadFile()值为非

发布网友 发布时间:2022-07-29 10:27

我来回答

3个回答

热心网友 时间:2023-11-22 08:52

你好 亲
修改后的应该是这样的
dlgFile.m_ofn.Flags |= OFN_ALLOWMULTISELECT | OFN_ENABLESIZING | OFN_HIDEREADONLY;
dlgFile.m_ofn.lpstrFilter = _T("Bin Files(*.bin)\0*.bin\0All Files(*.*)\0*.*\0\0");
const int nMaxFiles = 1000;
const int nMaxPathBuffer = (nMaxFiles * (MAX_PATH + 1)) + 1;
LPSTR pc = (LPSTR)malloc(nMaxPathBuffer * sizeof(WCHAR));

if( pc )
{
dlgFile.GetOFN().lpstrFile = pc;
dlgFile.GetOFN().lpstrFile[0] = NULL;
dlgFile.m_ofn.nMaxFile = nMaxPathBuffer;
if (dlgFile.DoModal() != IDOK)
{
return;
}
UpdateData(TRUE);
POSITION pos = dlgFile.GetStartPosition();//获取第一个文件位置
UpdateData(FALSE);
while (pos)
{
m_FilePathName[i] = dlgFile.GetNextPathName(pos);
if(i == 0)
{
m_TreeMuti1.DeleteAllItems();
/*TiXmlDocument *doc1 = new TiXmlDocument("D:\\sumA.bin");*/
TiXmlDocument *doc1 = new TiXmlDocument(m_FilePathName[0]);
/*CString str;str.Format(_T("%s"),m_FilePathName[0]);AfxMessageBox(str);*/
if (!doc1->LoadFile())
{
/*CString str;str.Format(_T("%s"),m_FilePathName[0]);AfxMessageBox(str);*/
return;
}
TiXmlElement *root1=doc1->RootElement();
TiXmlElement *pNode1=root1;
CrcXmlMuti1(pNode1,TVI_ROOT);

热心网友 时间:2023-11-22 08:53

m_FilePathName[0]在使用之前用format格式化一次,有可能里面存放的数据格式错了。

m_FilePathName[0].Format("%s",m_FilePathName[0]);

TiXmlDocument *doc1 = new TiXmlDocument(m_FilePathName[0]);

热心网友 时间:2023-11-22 08:53

这样试试

//本代码测试环境VS2008 c++ MFC
CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT,
NULL, this);

dlg.m_ofn.lpstrInitialDir = (BSTR)directoryName; //设置对话框默认呈现的路径

CString strFilePath;
if(dlg.DoModal() == IDOK)
{
CArray<CString, CString> aryFilename;
POSITION posFile=dlg.GetStartPosition();
while(posFile!=NULL)
{
aryFilename.Add(dlg.GetNextPathName(posFile));
}
for(int i=0;i<aryFilename.GetSize();i++)
{
if(strFilePath.GetLength()>0)
{
strFilePath.AppendChar(';');//多个文件‘;’分开
}
strFilePath+= aryFilename.GetAt(i);
}
}

仅供参考
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
vivo闪电手柄没法一键连招 vivo闪电游戏手柄如何设置最佳_vivo闪电游戏手柄设置教程 switch跳舞的游戏叫什么 量子特攻怎么使用灌木 量子特攻量子魔方有什么用 量子技能介绍 量子特攻怎么换技能介绍_量子特攻怎么换技能是什么 量子特攻战斗中更换时装和机仆技能方法介绍 量子特攻如何设置快捷机仆技能_量子特攻设置快捷机仆技能方法介绍_百度... 换新显卡,显示器不亮!DVI-D无信号 怎么回事大佬棒棒忙? 求大佬带飞,电脑相关问题 MFC如何读取BIN 犄角旮旯怎么读 犄角旮旯的意思 犄角旮旯是什么意思 怎么读 为什么马利颜料的紫色包装不同 教师资格证长时间不认证会怎么样 女人梦见被蛇追逐、 请问是好事或坏事? 梦见走上走路上看见蛇,蛇老是撵我 苹果耳机电池寿命怎么看 骂男人的五个字的微信名字 对一个人死心的微信名,一个女人对男人彻底死心微信名 谁有《我在黑暗中》完整版歌曲,能发给我吗?邮箱是281531002@163.com 谁能帮我翻译下When Susannah cries 这首歌的歌词 我不过一个影,要别你而沉默在黑暗里了… 后面的话怎么说来着… 我要你来看我不顾一切,我将天边用不能在回来歌名 想看我将消失在黑暗中第一季2020年上映的由 Paul Haynes主演的百度云资源 探探在苹果用一个登录过不能切另一个 为什么换了之后登不上- 问一问 唯独QQ空间打开,IE自动关闭。 ie浏览器意外关闭 qq空间打不开 进入qq空间后,不一会IE就提示关闭! vc++ mfc 如何将数据一行行的写入指定文件中 我现在有一个.bin文件,里面是double型的数据,我想在c++中读取存入double型的buffer中。 C语言已拷在电脑上,打开后里面有ATL,Bin,CRT,Include,Lib,MFC六个文件夹,和MSCREATE.DIR文件。 C#写的winform怎么在任意电脑上面打开 百因必有果的梗是什么意思 到底百因必有果的梗是什么意思 常吃清蒸鸽子对身体有好处吗? 华为自带手电筒怎么取现能取现在大屏上 cdr x6绿色版还有一个文件删不了,想安装9.0的也用不起,这也删不了,咋整,求大神 今天我生日,有很多人在QQ给我祝福,微信却没人知道,我该怎么在微信发表说说,大概意思今天我生日,但 静安区南山路71弄政府对接项目怎么办理的 上海南山路邮编 上海市静安区南山路去浦东新区川展路102号聚贤居庄园坐地铁几号线? 杭州南山路景观大道附近地铁站 汉庭酒店(杭州火车东站秋涛北路店)到南山路怎么走 曾祖爷的墓地管理处电话不通,在台湾的朋友帮帮忙!台湾省台北县中和市南山路:春秋墓园,管理处的电话? 南山路的灯光作文350字 红心火龙果有色素吗 红心火龙果有没有色素 小孩没带市民卡用大人身份证椒江体育馆能打疫苗吗 我女儿的接种卡不见了,可以去打预防针吗 没有杭州社保卡能打四价疫苗吗