C++ 怎么由路径名的字符串获得路径?

OPENFILENAMEofn;ofn.lpstrFile=strFile;if(GetOpenFileName(&ofn)){cout<<strFile<<endl;M... OPENFILENAME ofn;
ofn.lpstrFile=strFile;

if
(GetOpenFileName(&ofn))
{
cout<<strFile<<endl;

Mfilepath=strFile;
}
file.open(Mfilepath,ios::binary|ios::in);
我想让Mfilepath存路径,但是这样strFile里返回的是路径名的字符串,如何转换为路径(const char*)?

}

file.open(Mfilepath,ios::binary|ios::in);
展开
 我来答
qiny1010
2012-10-03 · TA获得超过232个赞
知道小有建树答主
回答量:315
采纳率:0%
帮助的人:145万
展开全部
先找到路径的最后一‘\’的下标m,然后使用strncpy()拷贝从0开始到找到m-1到字符串就是路径
至于找最后一个'\'可以从字符串尾向前找第一个'\'记下下标即可
追问
啊,我的意思是那个字符串怎么转换为一个file.open可以打开的东西?按我那个语句写是打不开的。。。
追答
方式1:
CFileDialog m_filedlg(true);
m_filedlg.m_ofn.lpstrTitle="MD5 target file select...";
m_filedlg.m_ofn.lpstrFilter="All Files(*.*)\0*.*\0\0";
if(m_filedlg.DoModal()==IDOK)
{
m_pathname=m_filedlg.GetPathName();
m_filesum=_T("");
UpdateData(false);
}

fstream Sfile;

Sfile.open(m_pathname.GetBuffer(0),ios::in|ios::nocreate|ios::binary);

方式2:
CFile file(pathName,CFile::modeRead); //以只读方式打开
file.Read(textContent,file.GetLenght()); //读取
textContent[file.GetLenght()]='\0'; //读取的文本内容后加0有利于后面的输出
file.Close(); //关闭文件
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式