1. 程式人生 > 程式設計 >C# 實現在當前目錄基礎上找到上一層目錄

C# 實現在當前目錄基礎上找到上一層目錄

其實很簡單也很無腦,但卻很實用,就是使用拆字串的方法:

/// <summary>
    /// 獲得專案的根路徑
    /// </summary>
    /// <returns></returns>
    public string GetProjectRootPath()
    {
      string rootPath = "";
      string BaseDirectoryPath = AppDomain.CurrentDomain.BaseDirectory; // F:\project\WPF\AstroATE-PDR\04. 程式\01. 原始碼\AstroATE\AstroATE\bin\Debug
      // 向上回退三級,得到需要的目錄
      rootPath = BaseDirectoryPath.Substring(0,BaseDirectoryPath.LastIndexOf("\\")); // 第一個\是轉義符,所以要寫兩個
      rootPath = rootPath.Substring(0,rootPath.LastIndexOf(@"\"));  // 或者寫成這種格式
      rootPath = rootPath.Substring(0,rootPath.LastIndexOf("\\")); // @"F:\project\WPF\AstroATE-PDR\04. 程式\01. 原始碼\AstroATE\AstroATE
      return rootPath;
    }

呼叫該函式:

string str = GetProjectRootPath() + @"\data\幫助文件.pdf";  //找到需要找的檔案

好了,這樣就解決了。

補充:C# 如何獲取可執行檔案路徑的上上級目錄

第一種:

DirectoryInfo di = new DirectoryInfo(string.Format(@"{0}..\..\",Application.StartupPath)); 
di.FullName

..\有幾個就是往回退幾層

第二種:

DirectoryInfo info = new DirectoryInfo(Application.StartupPath); 
String path = info.Parent.Parent.FullName;

第三種:

string WantedPath = Application.StartupPath.Substring(0,Application.StartupPath.LastIndexOf(@"\"));

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援我們。如有錯誤或未考慮完全的地方,望不吝賜教。