程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#獲取相對路徑,

C#獲取相對路徑,

編輯:C#入門知識

C#獲取相對路徑,


  

  C#最常使用的相對路徑是從當前程序所在路徑開始相對尋徑,找到要找的路徑,即以下兩種最簡單的方式:

 

  1. 程序根目錄.(即exe程序所在路徑)

//下面兩個路徑是等價的,都是exe程序所在路徑(通常是bin\Debug\下)的Data文件夾下的test文本文件
string Path1 = @".\Data\test.txt"; 
string Path2 = @"Data\test.txt"; 

 

  2. 上級目錄..

string Path3 = @"..\Data\test.txt";    //程序根目錄的上級目錄(通常是bin\下)的Data文件夾下的test文本文件
string Path4 = @"..\..\Data\test.txt";  //程序根目錄的上兩級目錄(通常是程序名\下)的Data文件夾下的test文本文件

 

 

  當然,C#還可以靠指定的方式獲得相對路徑。應用VS2010創建了一WinForm項目,項目名為RelativePath,放在桌面上。編寫代碼通過八種特定方式獲取相對路徑並輸出顯示,運行效果如下:

 

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

 

  1. 獲取和設置當前目錄(該進程從中啟動的目錄)的完全限定路徑

string str1 = System.Environment.CurrentDirectory;    //Result: C:xxxxxx

 

  2. 獲取應用程序的當前工作目錄

string str2 = System.IO.Directory.GetCurrentDirectory();    //Result: C:xxxxxx

 

  這個不一定是程序從中啟動的目錄啊,有可能程序放在C:\xxx裡,這個函數有可能返回C:\Documents and Settings\WSY\,或者C:\Program Files\Adobe\,有時不一定返回什麼東西,這是程序最後一次操作過的目錄,比如你用Word打開了E:\doc\my.doc這個文件,此時執行這個方法就返回了E:\doc了。 

 

  3. 獲取啟動了應用程序的可執行文件的路徑,不包括可執行文件的名稱

string str3 = System.Windows.Forms.Application.StartupPath;    //Result: C:xxxxxx

 

  4. 獲取啟動了應用程序的可執行文件的路徑,包括可執行文件的名稱

string str4 = System.Windows.Forms.Application.ExecutablePath;    //Result: C:xxxxxxxxx.EXE

 

  5. 獲取當前 Thread 的當前應用程序域的基目錄,它由程序集沖突解決程序用來探測程序集

string str5 = System.AppDomain.CurrentDomain.BaseDirectory;  //Result: C:xxxxxx

 

  6. 獲取和設置包含該應用程序的目錄的名稱

string str6 = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;    //Result: C:xxxxxx

 

  7. 獲取當前進程的完整路徑,包含文件名

string str7 = this.GetType().Assembly.Location;    //Result: C:xxxxxxxxx.exe

 

  8. 獲取新的 Process 組件並將其與當前活動的進程關聯的主模塊的完整路徑,包含文件名

string str8 = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;    //Result: C:xxxxxxxxx.vshost.exe

 

 

  此外,更多見的通過XML文件配置具體的路徑來達到合理的規劃配置文件的具體存放位置,如WEB中的配置文件中的路徑

string path = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"moduleM3ExampleMuColor.txt";
StreamReader smRead = new StreamReader(path, System.Text.Encoding.Default);  //設置路徑

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved