知道文件的绝对路径怎样获得它的上层目录的绝对路径

解决方案 »

  1.   

    char* filename;   //文件绝对路径(已知)
    char* Derectroyname;   //文件夹绝对路径(未知)
    strcat(filename,Derectoryname);
    int i=0;
    int t=0;
    //寻找最后一个‘\’
    while(Derectoryname[i]!='\0'){
        if(Derectoryname[i]=='\\') t=i;
        ++i;
    }
    Derectoryname[t]='\0';   //将文件路径从最后一个‘\’处截断 既得 文件夹路径
      

  2.   

    最简单的方法在他后面加  "\.."path1="c:\winnt\system32"path2=path1+"\.."
      

  3.   

    CString filename;   //文件绝对路径(已知)
    CString Derectroyname;   //文件夹绝对路径(未知)
    int i;
    i=filename.find('.');
    Derectroyname=filename.left(i);//可能是i+1
      

  4.   

    喔,错了!应该是
    i=filename.ReverseFind('\\');
    不好意思,差点误导.
      

  5.   

    char * lpszFileName; // 文件名绝对路径
    char * pc; // 最后一个反斜杠的位置
    char szDirectoryName[256]; // 放文件夹的缓冲区
    strcpy(szDirectoryName, lpszFileName);
    pc = strrchr(szDirectoryName, '\\');
    *(pc + 1) = '\0';
      

  6.   

    CString str="C:\\AA\\BB\\CC\\DD.exe";
    str.MakeReverse();//倒转
    str=str.Right(str.GetLength()-str.Find('\\'));去掉左边的EXE.DD
    str.MakeReverse();//转回来
    得到的str为"C:\\AA\\BB\\CC\\"
      

  7.   

    测试过的。    char *szFileName = new char[120];
        strcpy(szFileName,"c:\\windows\\system32\\mydoc.txt"); 

        char *szFileDir = new char[120];
        strcpy(szFileDir,szFileName);
        for(int i=strlen(szFileName);i>0;i--)
        {
    if (szFileDir[i]=='\\')
    {
                  szFileDir[i] = '\0';
         break;
    }
        }
      

  8.   

    上面得到的值:szFileDir 为   c:\windows\system32