首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# 獲取當前程序運行目錄:AppDomain.CurrentDomain.BaseDirectory

     編輯:程式設計綜合問答

推薦方法

string baseDir = AppDomain.CurrentDomain.BaseDirectory;
// 例:D:\Projects\MyApp\bin\Debug\

優點:

  • 不依賴當前工作目錄(Environment.CurrentDirectory 可被改變)。
  • 單元測試、發布、安裝後路徑均正確。
  • WPF/WinForms/Console/ASP.NET Core 通用。

其他常見 API 對比

API返回值適用場景
AppDomain.CurrentDomain.BaseDirectory程序集所在目錄(含尾斜杠)**首選**,穩定可靠
Assembly.GetEntryAssembly().Location入口程序集完整路徑需獲取 .exe 文件名時
Environment.CurrentDirectory進程當前工作目錄用戶在命令行執行時的目錄,**不可靠**
Directory.GetCurrentDirectory()同上同上
Application.StartupPath (WinForms)啟動目錄僅限 WinForms,本質同 BaseDirectory
GetCurrentDirectory() (Win32 API)當前工作目錄不推薦,需 P/Invoke,同 Environment.CurrentDirectory

構建 MDB 文件路徑示例

string mdbPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Data", "MyData.mdb");
// 確保目錄存在
Directory.CreateDirectory(Path.GetDirectoryName(mdbPath));

總結

**永遠使用 AppDomain.CurrentDomain.BaseDirectory** 定位程序部署目錄下的相對文件(配置、數據庫、日誌)。避免 Environment.CurrentDirectory 導致的「開發機正常、用戶機失敗」問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved