获取当前程序运行目录,网上一般是用Directory.GetCurrentDirectory()
,但实际情况是,这是获取程序工作路径。
但是执行dotnet run
命令来启动时,对于程序的工作路径就是执行命令的路径
,所以说,当你从D盘执行C盘的程序时,Directory.GetCurrentDirectory()
打印的地址是D盘的地址,而不是程序所在的C盘地址。
解决方案:
// 获取应用程序所在目录(绝对,不受工作目录影响)
Path.GetDirectoryName(typeof(Program).Assembly.Location);
// 也可以获取应用程序所在目录
AppContext.BaseDirectory