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。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- Unity AssetBundle打包工具示例詳解
- Unity實現植物識別示例詳解
- Unity實現紅酒識別的示例代碼
- Unity接入百度AI實現通用物體和場景識別
- C# 字符串與unicode互相轉換實戰案例