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(@"\"));

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

推薦閱讀: