- #include <stdio.h>
- #include <stdlib.h>
- void GetPath(char *pString,char *pCrrentDir) //解析文件路径
- {
- while(*(pCrrentDir++)=*(pString++)); //获取原始文件字符串
- while(*(--pCrrentDir)!='\\\\'); //从原始字符串尾部向前移到最后一个反斜杠处
- *pCrrentDir='\\0'; //最后一个反斜杠位置截断,获得当前路径
- }
- void GetName(char *pString, char *pBmpName) //解析文件名称
- {
- while(*(pString++)); //移到原始字符串尾部
- while(*(--pString)!='\\\\'); //从原始字符串尾部前移至最后一个反斜杠处
- while(*(pBmpName++)=*(++pString)); //从最后一个反斜杠处将原始字符串依次赋值,获得文件名称
- }
- void GetParentPath(char *pString,char *pParentDir) //解析文件上一级目录
- {
- while(*(pParentDir++)=*(pString++)); //获取原始文件字符串
- while(*(--pParentDir)!='\\\\'); //从原始字符串尾部向前移到最后一个反斜杠处
- *pParentDir='\\0'; //最后一个反斜杠位置截断,获得当前路径
- while(*(--pParentDir)) //从最后一个反斜杠向前移到倒数第二个反斜杠
- { //如果只有根目录,则当前路径和上一级路径重合
- if(*pParentDir == '\\\\' )
- {
- *pParentDir='\\0';
- break;
- }
- }
- }
- int main(int argc, char *argv[])
- {
- char* pString = "C:\\\\examp2.1\\\\mytest\\\\01245.tar.zip";
- char pBmpDir[100];
- char pBmpName[100];
- char pParentDir[100];
- GetPath(pString,pBmpDir);
- GetName(pString,pBmpName);
- GetParentPath(pString,pParentDir);
- printf( "源字符串:%s \\n",pString);
- printf( "当前路径:%s \\n",pBmpDir);
- printf( "文件名称:%s \\n",pBmpName);
- printf( "上级路径:%s \\n",pParentDir);
- system("PAUSE");
- return 0;
- }
- //该片段来自于http://www.codesnippet.cn/detail/090920135751.html
来源: http://www.codesnippet.cn/detail/090920135751.html