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发送到桌面快捷方式,并修改快捷方式下的“起始位置”(默认情况是该项与“目标”)一样。

结果发现,确实不一样:

C# Environment.CurrentDirectory和AppDomain.CurrentDomain.BaseDirectory的区别的更多相关文章
- C#中AppDomain.CurrentDomain.BaseDirectory及各种路径获取方法
// 获取程序的基目录.System.AppDomain.CurrentDomain.BaseDirectory // 获取模块的完整路径,包含文件名System.Diagnostics.Proces ...
- C#中AppDomain.CurrentDomain.BaseDirectory与Application.StartupPath的区别
// 获取程序的基目录. System.AppDomain.CurrentDomain.BaseDirectory // 获取模块的完整路径. System.Diagnostics.Process.G ...
- AppDomain.CurrentDomain.BaseDirectory是什么
AppDomain.CurrentDomain.BaseDirectory 是获取基目录,它由程序集冲突解决程序用来探测程序集.由显示的路径可以看出,它代表的是程序集所在的目录,它具有读取和写入的属性 ...
- C# AppDomain.CurrentDomain.BaseDirectory
AppDomain.CurrentDomain.BaseDirectory 是获取基目录,它由程序集冲突解决程序用来探测程序集.由显示的路径可以看出,它代表的是程序集所在的目录,它具有读取和写入的 ...
- 关于程序路径Path.Combine以及AppDomain.CurrentDomain.BaseDirectory
关于程序路径 LucenePath:@(System.Configuration.ConfigurationManager.AppSettings["LucenePath"])&l ...
- AppDomain.CurrentDomain.BaseDirectory
在winform中的OnPaint事件中,AppDomain.CurrentDomain.BaseDirectory得到的是下面这个路径 C:\Program Files (x86)\Microsof ...
- AppDomain.CurrentDomain.BaseDirectory项目目录相关操作
链接:https://www.cnblogs.com/guolianyu/p/3980971.html 经常用到,每次都百度,所以自己备份一下!
- C#: 获取当前路径不要用Environment.CurrentDirectory
网上大把文章写到C#获取当前路径的方法如下: // 获取程序的基目录. System.AppDomain.CurrentDomain.BaseDirectory // 获取模块的完整路径. Syste ...
- System.Environment.CurrentDirectory和Application.StartupPath
System.Environment.CurrentDirectory的含义是获取或设置当前工作路径,而Application.StartupPath是获取程序启动路径,表面上看二者没什么区别,但实际 ...
- .Net AppDomain.CurrentDomain.AppendPrivatePath(@"Libs");
今天就说说.Net中通过反射取得某个类型时,我们怎么知道这个类型在硬盘上的哪个角落?比如说,假如我们需要要求服务端动态载入某个数据源,那服务端怎么知道数据源在哪?网上大部分的教程都写着,可以使用Ass ...
随机推荐
- 朋友说喊搞个简单的微信对接的封装搞外包,不要那么多的方法拿来就用的的那种,来看看Simple.Wechat吧
不知道大家有没有和我朋友一样,很多时候做外包总免不了去对接微信,最简单的微信用户信息获取.微信支付.微信模板消息发送,要是不熟悉总是要去找这个那个的包,但是人家的包封装的又丰富,又不想去看,本文将给大 ...
- Typecho实现版权声明的三种方式
在安装完Typecho之后,第一件事应该就是想着如何去折腾了.对于个人博客而言,不希望自己辛辛苦苦写的文章,被别人转载或无脑采集,还不留原地址,所以就需要在文章的末尾地方放上一个版权声明,来提醒下转载 ...
- scala - [01] 概述
题记部分 001 || 介绍 (1)Spark -- 新一代内存级大数据计算框架,是大数据的重要内容 (2)Spark就是使用Scala编写的.因此为了更好的学习Spark,需要掌握Scala. (3 ...
- Linux - 批量清除失效软连接
红底白字,并且一闪一闪的都是失效的软连接,需要批量清除它们... 1.打印所有失效软连接 find ./* -type l -exec test ! -e {} \; -exec echo {} \; ...
- 【攻防世界】BadProgrammer
BadProgrammer(原型链污染) 题目来源 攻防世界 NO.GFSJ0986 题目描述 打开网址页面如下,没有什么有用信息 用dirsearch扫一下目录,发现/static../(用御剑扫不 ...
- DeepSeek 官方推出的提示词库,AI内容生成的精准导航仪!
前言 在当今数字化时代,人工智能(AI)正以前所未有的速度改变着我们的生活方式和工作模式.从简单的数据处理到复杂的创意生成,AI技术正逐渐渗透到各个领域,成为推动社会进步的重要力量.然而,如何高效地利 ...
- Visio绘制时间轴安排图的方法
本文介绍基于Visio软件绘制时间轴.日程安排图.时间进度图等的方法. 在很多学习.工作场合中,我们往往需要绘制如下所示的一些带有具体时间进度的日程安排.工作流程.项目进展等可视化图表. ...
- 实现Windows之间(win10)的桌面连接的三步走方法
实现Windows之间(win10)的远程桌面连接的三步走方法 目录 目录 实现Windows之间(win10)的远程桌面连接的三步走方法 目录 环境 step1:打开两台Windows电脑的 ...
- PV、UV、VV、IP含义及计算方式
什么是PV? PV 即 Page View,网站浏览量,指页面浏览的次数,用以衡量网站用户访问的网页数量. 用户每次打开一个页面便记录1次PV,多次打开同一页面则浏览量累计.一般来说,PV与来访者的数 ...
- 漫画赏析:Linux 内核到底长啥样
今天,我来为大家解读一幅来自 TurnOff.us 的漫画 "InSide The Linux Kernel" . TurnOff.us 是一个极客漫画网站,作者Daniel St ...