怎么将像下面的路径:C:\Documents and Settings\Administrator\桌面\HT_Com\up\转换为这种形式:C:\Docume~1\Admini~1\桌面\HT_Com\up\

解决方案 »

  1.   

    CString str("C:\\Documents and Settings\\Administrator\\桌面\\HT_Com\\up\\");
    //如果固定就这么几种需要转换的,可以直接转换.
    str.Replace("Documents and Settings","Docume~1");
    str.Replace("Administrator","Admini~1");
    //否则就得查找"\\"进行分段,把超过一定长度的子字符串截取前6个字符,再加上~1
      

  2.   

    不知道windows有没有提供这样的函数呢
      

  3.   

    CString sShort;
    GetShortPathName(C:\\Documents and Settings\\Administrator\\桌面\\HT_Com\\up\\", 
     sShort.GetBuffer(MAX_PATH), MAX_PATH);
    sShort.ReleaseBuffer();
    AfxMessageBox(sShort);