1. 程式人生 > >c++ 工作路徑介紹及獲取

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