用什么函数可以将完整文件名分成两部分,比如说c:\folder\file.txt分成c:\folder和file.txt

mefish 2001-11-15 10:27:07
我记得是什么path...忘了,麻烦各位想想。(什么,想都不用想,牛!佩服!)
...全文
88 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
xtky_limi 2001-11-15
CString str = _T("c:\folder\file.txt");
int nRet = str.ReverseFind( '\' );
CString strPath = str.Left( nRet );//得到c:\folder
CString strFile = str.Right( str.GetLength() - nRet -1);//得到file.txt

  • 打赏
  • 举报
回复
quengzi 2001-11-15
函数原型:short GetFTitle(LPCTSTR LPTSTR IpszTitle,WORD cbBuf);

参数:

IpszFile:指向一个文件名或文件位置的指针。

IpszTitle:指向一个缓冲区,在此缓冲区中函数复制文件名。

chBuf:指定由IpszTitle函数指向的缓冲的字节长度。

返回值:如果函数调用成功,返回值为零;如果文件名无效,返回值为一负值。如果由IpszTitle参数指向的缓冲区的太小,返回值为一正整数,其值指定了所需缓冲区的大小。所需缓冲区的大小还包括结尾的NULL字符。

备注:如果由IpszFile参数指向的缓冲区包含下列任何一个成员,GetFileTitle函数返回一个错误信息值。

一个空字符串;一个含有星号()、开括号([)、闭方括号(])的串、一个以冒号(:)、斜杠(/)或倒斜杠结尾的串;一个长度超过缓冲区长度的串;一个无效字符(如,一个空格或一个不能打印的字母):为得到文件名所需的缓冲区的大小,用设置为NULL的IpszTitle和设置为零的cbBuf调用函数。函数将返回所需的大小。

GetFileTitle函数返回一个串,系统应用此串为用户显示文件名。这就意味着如果返回串应用在文件系统函数的调用中不可能准确地标识文件。

如果证IpszTitle缓冲区太小,GetFile Title返回的大小需要含有显示名。在IpszFile缓冲区指定的需要的大小和字符之间没有许可的联系。

速查:Windows NT:3.1及以上版本:Windows:95及以上版本:Windows CE:不支持:头文件:Commdlg.h;库文件:comdlg32.fib;Unicode:在Windows NT环境中实现为Unicode和ANSI两个版本。
  • 打赏
  • 举报
回复
mefish 2001-11-15
加起来倒是不麻烦,我想知道我以前记得的那个函数是什么。
thank u any way!
  • 打赏
  • 举报
回复
如果不想加的话,你自己在找找吧。
  • 打赏
  • 举报
回复
mefish 2001-11-15
呵呵,我只想获得前面的路径,用_splitpath(...)的话还得把他们加起来
  • 打赏
  • 举报
回复
void _splitpath( const char *path, char *drive, char *dir, char *fname, char *ext );
功能强大吧
  • 打赏
  • 举报
回复
相关推荐
发帖
VC/MFC

1.6w+

社区成员

VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
帖子事件
创建了帖子
2001-11-15 10:27
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……