C#文件相對路徑


在拼接路徑的時候建議使用系統提供的Path.Combine函數

            string aa = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
            if (Directory.Exists(aa + "/Pic") == false)//如果不存在就創建file文件夾
            {
                Directory.CreateDirectory(aa + "/Pic");
            }
            string bb = Path.Combine(aa, "Pic");

 

以下轉載自:https://www.cnblogs.com/eniac12/p/4461614.html

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);  //設置路徑


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM