C# 實現在當前目錄基礎上找到上一層目錄
阿新 • • 發佈:2021-01-14
其實很簡單也很無腦,但卻很實用,就是使用拆字串的方法:
/// <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(@"\"));
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援我們。如有錯誤或未考慮完全的地方,望不吝賜教。