VC MFC 知道文件的绝对路径求文件夹的路径?

如:c:\windows\a.txt得到文件夹路径:c:\windows\... 如:
c:\windows\a.txt
得到文件夹路径:c:\windows\
展开
 我来答
百度网友3ad5602
2011-07-20 · TA获得超过717个赞
知道小有建树答主
回答量:345
采纳率:100%
帮助的人:352万
展开全部
BOOL PathRemoveFileSpec( LPTSTR pszPath);
功能:删除路径后面的文件名和’/’符号。该函数可以分析出一个文件的路径。

例:char szpath[257]="c://window//a.txt";
调用PathRemoveFileSpec( szpath ) 后,szPath = “c://windows”

需要头文件:shlwapi.h
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
灌胶点胶机制造37
2011-07-20 · TA获得超过120个赞
知道小有建树答主
回答量:227
采纳率:0%
帮助的人:244万
展开全部
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);

貌似是这样,最后面那个不是很清楚了,试下..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
437384801
2011-07-20 · TA获得超过1867个赞
知道小有建树答主
回答量:1299
采纳率:0%
帮助的人:495万
展开全部
我来回答简直就是送分:
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
noodlest
2011-07-20 · TA获得超过785个赞
知道小有建树答主
回答量:724
采纳率:100%
帮助的人:709万
展开全部
使用CString的方法就可以:
1、使用ReverseFind函数倒序查找到分隔符的位置(索引值)。
2、使用Left函数获取索引值左边的全部字符就是文件夹路径。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
navy102019
推荐于2016-07-05 · TA获得超过520个赞
知道小有建树答主
回答量:179
采纳率:100%
帮助的人:129万
展开全部
char szPath[257]='c:\windows\a.txt';
CString cstr;
cstr.Format(%s,szPath);
int k=cstr.ReverseFind('\\');
CString ss=cstr.Left(k+1);//提取'\'及以前的字符*/
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式