C# Environment.CurrentDirectory和AppDomain.CurrentDomain.BaseDirectory的区别

Environment.CurrentDirectory 和 AppDomain.CurrentDomain.BaseDirectory 都是C#中用于获取当前应用程序的目录路径的方法,但是它们的用途和行为是不同的。

Environment.CurrentDirectory 返回的是当前进程的当前工作目录路径,这通常是启动应用程序的目录。如果在启动时没有指定工作目录,那么当前目录将是应用程序的根目录。Environment.CurrentDirectory 属性是一个可读写的属性,可以通过它来改变当前工作目录。

AppDomain.CurrentDomain.BaseDirectory 返回的是当前应用程序域的基目录,这通常是应用程序的根目录。与 Environment.CurrentDirectory 不同的是,AppDomain.CurrentDomain.BaseDirectory 属性是只读的,不能改变它的值。

总之,如果你需要获取当前应用程序的目录路径,你应该使用 AppDomain.CurrentDomain.BaseDirectory 属性,因为它返回的是应用程序的根目录,而且它是只读的,避免了意外的改变。而 Environment.CurrentDirectory 则更适用于获取当前进程的当前工作目录路径。
下面举个例子:


Console.WriteLine($"{Environment.CurrentDirectory}");
Console.WriteLine($"{AppDomain.CurrentDomain.BaseDirectory}");
Console.ReadLine();

将debug下的exe发送到桌面快捷方式,并修改快捷方式下的“起始位置”(默认情况是该项与“目标”)一样。

结果发现,确实不一样:

posted @   JohnYang819  阅读(590)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2020-04-01 Possible data inputs to DataFrame constructor
点击右上角即可分享
微信分享提示