VC中獲取檔案的相對路徑與絕對路徑

2021-06-22 06:05:14 字數 1356 閱讀 1900

如果當前開啟的檔案中要尋找同級的目錄檔案就要用到.\或者./ vc編譯器都可以識別。例如#define ".\xx\xx\xx.h"

如果當前開啟的檔案中要尋找在上級的目錄檔案就要用到  ..\ 或者../ vc編譯器都可以識別。例如#define "..\xx\xx\xx.h"

通過這樣簡單的標識,vc相對路徑的問題就解決了,這樣也就避免了設定繁瑣的系統路徑。當然了,設定相對路徑要在編碼的時候對檔案的存放層次關係特別清楚,否則統一修改路徑將會帶來很大的工作量。

方法1:

cstring strpath;

getcurrentdirectory(max_path,strpath.getbuffer(max_path));

strpath.releasebuffer(); 

filename=strpath+"\\"+dlg.getfilename(); 

方法2:

使用getmodulefilename(null,exefullpath,max_path);//得到程式模組名稱,全路徑

[cpp]view plain

copy

print?

cstring strpath;  

getmodulefilename(null,strpath,max_path);  

strpath.releasebuffer();  

filename=strpath+"\\檔名.*";                 

在開發工程中,往往需要知道當前程式本身所在目錄。一種方法是在程式安裝的時候利用安裝程式把檔案路徑寫入登錄檔。在較大的程式中,這種方法比較常用;另一種,就是在程式得到路徑。這樣,程式隨便移動到**,都可以得到正確的路徑。這也是本文介紹的方法。

.\\是的到應用程式的當前目錄,但當前目錄不一定等於應用程式執行檔案的所在目錄,乙個應用程式被啟動時,當前目錄是可以被任意設定的;

getmodulefilename()得到模組的完整路徑名,例如,你載入c:\windows\system32\a.dll,得到模組控制代碼h,則你可以用getmodulefilename()得到h模組的完整路徑名。

例項:cstring             strpath;

cstring             filepath;

cstring   getfilepath()  應用

cstring   strxmlpath; 

strxmlpath.format(_t("%s%s"),getfilepath(),_t("configure\\soundfile.xml"));

//strxmlpath=e:\a專案\hidd\main\configure\\soundfile.xml

絕對路徑 相對路徑的獲取

呼叫函式 getmodulefilename,返回當前程序的映象檔案 exe 所在的目錄。較為穩妥且移植性較好。函式原型 函式功能 此函式得到當前應用程式的執行目錄,還包括應用程式的檔名。引數 hmodule handle to module 要獲取檔名的模組控制代碼。null表示當前模組 lpfi...

VC中獲取exe檔案的相對路徑

最近的學習中需在相關方面的知識,就google了一下這方面的資料,也稍稍總結一下!具體 如下 char fullpath 255 char ptoken null getmodulefilename null,fullpath,sizeof fullpath 1 得到生成.exe程式的路徑 然後再用...

相對路徑與絕對路徑

相對路徑 以引用檔案之網頁所在位置為參考基礎,而建立出的目錄路徑。因此,當儲存於不同目錄的網頁引用同乙個檔案時,所使用的路徑將不相同,故稱之為相對。絕對路徑 以web站點根目錄為參考基礎的目錄路徑。之所以稱為絕對,意指當所有網頁引用同乙個檔案時,所使用的路徑都是一樣的。其實絕對路徑與相對路徑的不同處...