1)绝对路径:绝对路径是指目录下的绝对位置,直接到达目标位置,通常是从盘符开始的路径。例如:C:\windows\system32\cmd.exe
注意: 在不同系统的情况系 windows下是“\”,linux和unix下是“/” ,但在win中没有本质区别。linux和unix系统中绝对路径 以“/”为起始 例:/home/user1/abc.txt
在windows中绝对路径用的更多的是“\”(也可以用“/”),网络路用的更多的是“/”。
2)相对路径:是从当前路径开始的路径,假如当前路径为C:\windows要描述上述路径,只需输入system32\cmd.exe实际上,严格的相对路径写法应为.\system32\cmd.exe
*在windows下,“./”或者“.\”当前路径表示当前目录,“../”或者“..\”(\有转义的意思,需要有两个\)表示当前路径表示的上一级目录
在Linux下,“./” 表示当前路径表示的当前目录 “../”表示当前路径表示的上一级目录*
例如:C:\windows\system32\cmd.exe
假如当前路径为c:\program files要调用上述命令,则需要输入..\windows\system32\cmd.exe其中,..为父目录。当前路径如果为c:\program files\common files则需要输入….\windows\system32\cmd.exe另外,还有一种不包含盘符的特殊绝对路径,形如\windows\system32\cmd.exe无论当前路径是什么,会自动地从当前盘的根目录开始查找指定的程序。
其中“..”为父目录,”..\”表示回到上一级目录,所以需要回到上一级目录进行查找。
要想获取当前目录
#include <direct.h>
#include <stdio.h>
char buffer[MAX_PATH];
getcwd(buffer, MAX_PATH);
printf( "The current directory is: %s ", buffer);
//打印出E:/C++/cppTest/cppPrimerTest
获得exe当前目录:
#include <windows.h>
char chpath[MAX_PATH];
GetModuleFileName(NULL,(LPSTR)chpath,sizeof(chpath));
std::cout<<chpath<<std::endl;
//打印出:E:/C++/cppTest/cppPrimerTest/Debug/cppTest.exe