首页 > 编程语言 >C# Environment.CurrentDirectory和AppDomain.CurrentDomain.BaseDirectory的区别

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

时间:2023-04-01 11:00:29浏览次数:31  
标签:C# AppDomain 应用程序 Environment CurrentDirectory BaseDirectory CurrentDomain

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#,AppDomain,应用程序,Environment,CurrentDirectory,BaseDirectory,CurrentDomain
From: https://www.cnblogs.com/johnyang/p/17278241.html

相关文章

  • .NetCore中使用分布式事务DTM的二阶段消息
    一、概述二阶段消息是DTM新提出的,可以完美代替现有的事务消息和本地消息表架构。无论从复杂度、性能、便利性还是代码量都是完胜现有的方案。相比现有的消息架构借助于各种消息中间件比如RocketMQ等,DTM自己实现了无需额外的学习成本。它能够保证本地事务的提交和全局事务提交是......
  • excel函数用法小结
    Excel函数使用小结if与数组的结合使用——多条件查询多条件统计查询: 获取: 广州战区、A类的数据最小值: =MIN(IF(($A$3:$A$21=$K$2)*($B$3:$B$21=$J$2),$C$3:$C$21)) 注:if函数,在使用数组结合的过程中,出现多个条件判断时,不可以使用and函数,需将【and函数】换成【*】号 ......
  • 备份 Linux 系统神器:rsync
    导读探索rsync在备份方案中的作用。在系统管理员的工作中备份无疑是一个重要的部分。当没有完整备份或者良好规划的备份和实施时,就可能或早或晚不可挽回地丢失重要的数据。所有公司,无论大小,都运营在数据之上。考虑到丢失业务数据造成的经济和业务损失,从最小的个人公司到......
  • cf-div.2-860d
    题目链接:https://codeforces.com/contest/1798/problem/D贪心,比赛时一直搞C没搞出来,回头看D反而更简单。贪心策略:能填正数就填,填不了填负数。大致证明:构造的区间一定呈一个这样的特定区间,正...负正负负...负正....负负,证明一段区间为正且小于给定值易证,下面证最后一段区间的绝......
  • 2·1浏览器背后的故事、2·2HTTP协议的前世今生、2·3透过TCPIP看HTTP、2·4DNS域名解
    浏览器背后的故事Http·超文本传输协议(HTTP)是一种通信协议它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器·HTTP是一个属于应用层的面向对象的协议由于其简捷快速的方式,适用于分布式超媒体信息系统它于1990年提出经过几年的使用与......
  • 透过TCP/IP看HTTP
    透过TCP/IP看HTTPHTTP协议是构建在TCP/IP协议之上的,是TCP/IP协议的一个子集为了更好的理解HTTP协议,我们先了解一下TCP/IP的相关知识 TCP/IP协议族TCP/IP协议其实是一系列与互联网相关联的协议集合起来的总称分层管理是TCP/IP协议的重要特征 TCP/IP协议族分层......
  • PAT Basic 1058. 选择题
    PATBasic1058.选择题1.题目描述:批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多。2.输入格式:输入在第一行给出两个正整数N(≤ 1000)和M(≤ 100),分别是学生人数和多选题的个数。随后M行,每行顺次给出一道题的满分值(不超过5的......
  • unidac分页
    unidac分页unidac的组件uniquery有两个个属性就可以轻松实现。但是这样做,你必须要写一条语句查出总记录来赋值给label才知道总共有多少记录哦,而且不能完美使用cxgrid、dbgrideh自带的过滤功能(因为刚开始只能100条数据,你是不能过滤100以后的符合条件的记录的)。FetchRows可以设定一......
  • 跨境电商店铺如何防关联封号?需要socks5代理?
    跨境电商店铺防止关联封号的最佳方法是确保在不同的设备、IP地址、浏览器、操作系统和支付账户之间切换。这样做可以减少平台将多个账户视为同一人的风险,从而防止因关联而被封号。以下是一些可行的措施:1.使用不同的设备:尽可能在不同的设备上登录不同的店铺账户,例如使用不同的电脑或......
  • 迁移学习(CDA)《CDA:Contrastive-adversarial Domain Adaptation 》
    论文信息论文标题:CDA:Contrastive-adversarialDomainAdaptation论文作者:NishantYadav,M.Alam,AhmedK.Farahat,DipanjanGhosh,ChetanGupta,A.Ganguly论文来源:2023 ArXiv论文地址:download 论文代码:download视屏讲解:click1介绍基于域对齐的域适应方法实现了......