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); 展开
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); 展开
1个回答
展开全部
先找到路径的最后一‘\’的下标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(); //关闭文件
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询