CString name(lpszpathname)
假设传的lpszpathname是e:\program\acis\part(203).stp
怎么样获得文件名"part(203).stp"?谢谢帮忙!

解决方案 »

  1.   

    从头读取字符串于一个temp变量中,当遇到 \ 时重置,到字符串结尾后就得到了
      

  2.   

    To: DeautyFan(悲情浪子) 
    能不能给个例子看看,才学不大会.3KS!
      

  3.   

    int at = name.ReverseFind("\");
    CString strRight = name.right(at);
      

  4.   

    int npos=0;
    do
    {
    npos = name.Find('\',0);
    name = name.Mid(npos+1,name.GetLength());
    }while(npos>0)
      

  5.   

    char *retc,c;
    char temp[100];
    retc = name.GetBufferSetLength(name.GetLength());//将name传给字符指针
    //不好意思,对CString 不是很熟悉,所以转到char
    c=strrchar('\');
    for(int i=0;i<100;i++)
    {
       if(*c!='\n')
          temp[i]=*(++c);
       else
         break;
    }
    return temp;
        
      

  6.   

    这也是个不错的办法。
    CString strFileName = "E:\\program\\acis\\part(203).stp";

    char fname[_MAX_FNAME];
    char ext[_MAX_EXT];

    _splitpath( strFileName.GetBuffer(0), NULL, NULL, fname, ext );
    strFileName.Format("%s%s",fname,ext);
      

  7.   

    char lpszpathname[]="e:\\program\\acis\\part(203).stp";
    CString name(lpszpathname);
    int pos=name.Find('\\');
    while(pos!=-1)
    {
    name=name.Mid(pos+1);
    pos=name.Find('\\');
    }
    AfxMessageBox(name);
      

  8.   

    这个最简单,没问题:
    int iPos = name.ReverseFind("\");
    CString str = name.right(iPos);
      

  9.   

    我试了,用
         CString fname="E:\\research\\program\\step\\part1(203)";
         int at = fname.ReverseFind('\\');
         CString strRight = fname.Mid(at+1);
    这样行