.NET 获取 EXE 所在目录的方法
2024-09-04 15:40:23
获取 EXE 所在目录可以先获取 EXE 完整路径,再提取出目录。不过本文不讲,因为有内置方法可以直接获取目录。
.NET 中有5种方式获取 EXE 目录,先看看例子:
1 | Debug.WriteLine("Directory.GetCurrentDirectory(): " + Directory.GetCurrentDirectory()); |
双击方式启动 EXE,得到以下输出:
1 | Directory.GetCurrentDirectory(): C:\dir |
再将起始位置切换到其他目录,用 CMD 方式启动:
1 | cd C: |
这样启动,工作目录就是C:\
,得到以下输出:
1 | Directory.GetCurrentDirectory(): C:\ |
Directory.GetCurrentDirectory 和 Environment.CurrentDirectory 返回的是工作目录,不符合预期。
Application.StartupPath 是 WinForms 程序特定属性,不是最优选择。
AppDomainSetup.ApplicationBase 属性可修改,不可靠。
最后就只剩下 AppDomain.CurrentDomain.BaseDirectory 了,是一个只读属性,不依赖 WinForms,推荐使用。