c++ 工作路徑介紹及獲取
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