C 獲取相對路徑

2021-08-21 05:05:26 字數 1601 閱讀 2817

//

下面兩個路徑是等價的,都是exe程式所在路徑(通常是bin\debug\下)的data資料夾下的test文字檔案

string path1 = @"

.\data\test.txt";

string path2 = @"

data\test.txt

";

string path3 = @"

..\data\test.txt

";    //

程式根目錄的上級目錄(通常是bin\下)的data資料夾下的test文字檔案

string path4 = @"

..\..\data\test.txt

";  //

程式根目錄的上兩級目錄(通常是程式名\下)的data資料夾下的test文字檔案

當然,c#還可以靠指定的方式獲得相對路徑。應用vs2010建立了一winform專案,專案名為relativepath,放在桌面上。編寫**通過八種特定方式獲取相對路徑並輸出顯示,執行效果如下:

下面簡要的介紹一下這八種獲得相對路徑的方式:

string str1 = system.environment.currentdirectory;    //

result: c:******

string str2 = system.io.directory.getcurrentdirectory();    //

result: c:******

這個不一定是程式從中啟動的目錄啊,有可能程式放在c:\***裡,這個函式有可能返回c:\documents and settings\wsy\,或者c:\program files\adobe\,有時不一定返回什麼東西,這是程式最後一次操作過的目錄,比如你用word開啟了e:\doc\my.doc這個檔案,此時執行這個方法就返回了e:\doc了。 

result: c:******

result: c:*********.exe

result: c:******

result: c:******

string str7 = this.gettype().assembly.location;    //

result: c:*********.exe

string str8 = system.diagnostics.process.getcurrentprocess().mainmodule.filename;    //

result: c:*********.vshost.exe

此外,更多見的通過xml檔案配置具體的路徑來達到合理的規劃配置檔案的具體存放位置,如web中的配置檔案中的路徑

modulem3examplemucolor.txt";

streamreader smread = new streamreader(path, system.text.encoding.default);  //

設定路徑

c 獲取相對路徑

一 獲取當前檔案的路徑 1.system.diagnostics.process.getcurrentprocess mainmodule.filename 獲取模組的完整路徑,包括檔名。2.system.environment.currentdirectory 獲取和設定當前目錄 該程序從中啟動的...

c 獲取相對路徑

一 獲取當前檔案的路徑 1.system.diagnostics.process.getcurrentprocess mainmodule.filename 獲取模組的完整路徑,包括檔名。2.system.environment.currentdirectory 獲取和設定當前目錄 該程序從中啟動的...

c 獲取相對路徑

獲取路徑2相對於路徑1的相對路徑 路徑1 路徑2 返回路徑2相對於路徑1的路徑 string strpath getrelativepath c windows system32 c windows system strpath system public static string getrela...