VC MFC 知道文件的绝对路径求文件夹的路径?
5个回答
展开全部
BOOL PathRemoveFileSpec( LPTSTR pszPath);
功能:删除路径后面的文件名和’/’符号。该函数可以分析出一个文件的路径。
例:char szpath[257]="c://window//a.txt";
调用PathRemoveFileSpec( szpath ) 后,szPath = “c://windows”
需要头文件:shlwapi.h
功能:删除路径后面的文件名和’/’符号。该函数可以分析出一个文件的路径。
例:char szpath[257]="c://window//a.txt";
调用PathRemoveFileSpec( szpath ) 后,szPath = “c://windows”
需要头文件:shlwapi.h
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CString m_str;
CString sFilter="TXT Files (*.txt)|All Files (*.*)|*.*||";
CFileDialog m_Dlg(TRUE,NULL, NULL, OFN_HIDEREADONLY |
OFN_OVERWRITEPROMPT,(LPCTSTR)sFilter,NULL);
m_Dlg.DoModal( );
m_str=m_Dlg.GetPathName( );//你得到的文件路径
CString pathname;
pathname=dlg.GetFileTitle();//得到文件名
pathname+="."+m_Dlg.GetFileExt();
int length1,length2;
length1=m_str.GetLength();
length2=pathname.GetLength();
m_str.Delete(length1-length2,length2);
貌似是这样,最后面那个不是很清楚了,试下..
CString sFilter="TXT Files (*.txt)|All Files (*.*)|*.*||";
CFileDialog m_Dlg(TRUE,NULL, NULL, OFN_HIDEREADONLY |
OFN_OVERWRITEPROMPT,(LPCTSTR)sFilter,NULL);
m_Dlg.DoModal( );
m_str=m_Dlg.GetPathName( );//你得到的文件路径
CString pathname;
pathname=dlg.GetFileTitle();//得到文件名
pathname+="."+m_Dlg.GetFileExt();
int length1,length2;
length1=m_str.GetLength();
length2=pathname.GetLength();
m_str.Delete(length1-length2,length2);
貌似是这样,最后面那个不是很清楚了,试下..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我来回答简直就是送分:
CString s="c:\\window\\a.txt";
int i=s.ReverseFind(‘\\’);
CString ss=s.Left(i) ;这里的ss就是答案
这个ss就是
CString s="c:\\window\\a.txt";
int i=s.ReverseFind(‘\\’);
CString ss=s.Left(i) ;这里的ss就是答案
这个ss就是
追问
我的路径是: char szpath[257]="c:\\window\\a.txt";
怎样才能把结果 c:\windows\ 存在 char szdir[257]中呢?
转换不安全,可以不用Cstring类型吗? 谢谢!
追答
Strcpy(szdir,ss.GetBuffer());
最好用Cstring
建议用TCHAR去代替char,几乎不用char
在vs下几乎都是unicode
否则要用C语言去做了
i
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用CString的方法就可以:
1、使用ReverseFind函数倒序查找到分隔符的位置(索引值)。
2、使用Left函数获取索引值左边的全部字符就是文件夹路径。
1、使用ReverseFind函数倒序查找到分隔符的位置(索引值)。
2、使用Left函数获取索引值左边的全部字符就是文件夹路径。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char szPath[257]='c:\windows\a.txt';
CString cstr;
cstr.Format(%s,szPath);
int k=cstr.ReverseFind('\\');
CString ss=cstr.Left(k+1);//提取'\'及以前的字符*/
CString cstr;
cstr.Format(%s,szPath);
int k=cstr.ReverseFind('\\');
CString ss=cstr.Left(k+1);//提取'\'及以前的字符*/
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询