首页 > 编程语言 >C# 避免使用System.Environment.CurrentDirectory

C# 避免使用System.Environment.CurrentDirectory

时间:2023-06-28 14:58:04浏览次数:33  
标签:获取 C# 程序 System Environment CurrentDirectory 目录

我有一个程序A(exe)是通过计划任务程序启动,发现通过System.Environment.CurrentDirectory获取的路径不是程序A的运行目录,而是C:\Windows\System32

DirectoryInfo topDir = Directory.GetParent(System.Environment.CurrentDirectory);

是因为System.Environment.CurrentDirectory确实是获取当前目录没错,但是如果A程序调用B程序,当B程序里使用了System.Environment.CurrentDirectory获取目录。那么这个B程序里获取的这个目录就不再是B的应用程序所在目录了;而变成了A所在的目录了。

而计划任务程序启动时通过是由windows的某个进程调用的,所以System.Environment.CurrentDirectory指向了C:\Windows\System32。

解决方案:

使用System.AppDomain.CurrentDomain.BaseDirectory替换System.Environment.CurrentDirectory。

标签:获取,C#,程序,System,Environment,CurrentDirectory,目录
From: https://www.cnblogs.com/log9527blog/p/17511394.html

相关文章

  • Bean生命周期的扩展点:Bean Post Processor
    摘要:在本篇文章中,我们将深入探讨Spring框架中的重要组件——BeanPostProcessor。首先,我们将了解其设计理念和目标,然后通过实际的例子学习如何基础使用它,如何通过BeanPostProcessor改变Bean的初始化结果以及如何利用它修改Bean的属性。本文分享自华为云社区《Spring高手之路6——B......
  • [CS224W] 图机器学习 节点级特征
    节点度数(Nodedegree)结点\(v\)的度数\(k_v\)是\(v\)所邻接到的节点数量。平等对待所有邻居节点,没有考虑节点的重要性。节点中心性(Nodecentrality)考虑了节点的重要性。1.特征向量中心性(Eigenvectorcentrality)如果节点\(v\)的邻域\(u\inN(v)\)中有......
  • React学习时,outlet配置(token判定,页面path监听)
    尽管写过outlet路由的配置。考虑到token判定和路由页变更,我不了解v6是不是有更详解的做法。决定调一下配置,期望在任何页面异步更新时,token都可以在跳转前被检测到,防止无token跳转发生。为src文件配置v6版本:路由子组件App.jsimport{HashRouter,Routes,Ro......
  • Vscode自动生成注释的神器-KoroFileHeader
    1、安装KoroFileHeader设置-->扩展(ctrl+S)-->搜索KoroFileHeader,并安装 2、设置函数注释与文档注释设置—》搜索fileheaderconfiguration-》编辑setting.json文件设置自己的注释格式  //文件头注释"fileheader.customMade":{"Filename":"",......
  • 从数据类型 varchar 转换为 numeric 时出错
     原文链接:https://pythonjishu.com/ddotfpypwo/通常,这种错误是由以下原因之一导致的:字符串包含不能被解析为数字的字符,例如字母、符号等。字符串的长度超过了numeric类型的最大长度。如:Numeric(10,2)指字段是数字型,长度为10小数为两位字符串的格式不符合numeric类型......
  • Kubernetes编程——client-go基础—— TypeMeta
    TypeMetahttps://github.com/kubernetes/apimachinery/blob/release-1.27/pkg/runtime/types.go runtime.Object只是一个接口,我们想了解它具体时间怎么实现的。k8s.io/api中的Kubernetes对象通过内嵌k8s.io/apimachinery/meta/v1中的metav1.TypeMeta结构,为schema.Obj......
  • Linux curl命令详解
    命令:curl在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。语法:#curl[option][url]常见参数:-A/--user-agent<string>设置用户代理......
  • 配置使用iscsi
    配置使用iscsi请确保服务器A上已经关闭了防火墙或者允许了3260端口。下图描述了使用iSCSI的大致过程,后文内容虽然因为介绍各种用法而显得比较杂,但根据这张图的流程,阅读时很容易搞清楚相关内容。gtadm是一个高度模式化的命令,他们的模式很相近。有三个模式:target、logicalunit......
  • LCD多键触摸驱动IC芯片VK36N3B/4B/5B/6B/7B/8B技术资料
    型号汇总:VK36N3B-8B按键数不同,分别对应3-8个触摸按键VK36N3B封装为sop8,VK36N4-8B为sop16,VK36N3B/4B为2位BCD码输出,VK36N5B-8B为3位BCD码输出。概述:VK36N3B具有3个触摸按键,可用来检测外部触摸按键上人手的触摸动作。该芯片具有较高的集成度,仅需极少的外部组件便可实现触摸按键......
  • android ninepatch
    简介ninepatch是android提供的一种图片格式,以.9.png结尾,它可以根据实际情况横向或纵向的拉伸,它是png的一种特殊格式。ninepatch为什么会有ninepatch呢?比如,有个聊天图片message_left.png,当宽度设置为match_parent时,就产生了图片由于拉伸而很难看的问题。有鉴于此,android在它的sdk......