絕對路徑
又稱全路徑,從頂級目錄開始,描述一個文件路徑的完整信息。
c:/windows/system32/abc.dll
d:/cpp/mytest/debug/test.exe
當(dāng)前路徑
當(dāng)前路徑, 又稱當(dāng)前目錄、工作目錄
current directory / working directory
指的是程序的工作目錄。
當(dāng)一個文件不帶路徑、只有文件名時,表示在當(dāng)前路徑下創(chuàng)建。
在VC中運(yùn)行程序時,默認(rèn)的當(dāng)前路徑是項(xiàng)目所在路徑
在命令行運(yùn)行程序時,在哪個目錄運(yùn)行,當(dāng)前路徑就在哪里。
在程序里,可以寫代碼調(diào)整自己的工作目錄。
不同的平臺上,調(diào)用不同的函數(shù)。
在VC下,
SetCurrentDirectoryA("d:\\test\\cpp\\");
這個函數(shù)要求用\作為分隔符
相對路徑
如果一個路徑不是絕對路徑,那它就是相對于當(dāng)前工作目錄的路徑,稱為相對路徑。
例如,
工作目錄:d:/cpp/hello/
"abc.txt": 則創(chuàng)建d:/cpp/hello/abc.txt
"out/abc.txt" 即d:/cpp/hello/out/abc.txt
兩個特殊的相對目徑. 和..
.表示本目錄
..表示上層目錄
工作目錄:d:/cpp/hello/
則
"./out/abc.txt" 即d:/cpp/hello/out/abc.txt
"../abc.txt" 即d:/cpp/abc.txt
"../../abc.txt" 即d:/abc.txt
在各個平臺(windows和linux)下,相對路徑.和..的意義是相同的
還可以更復(fù)雜
../abc/.././other/../a.txt
理論上有效,但實(shí)際上很少有人這么寫
??
