关于 c#:如何找出我的控制台应用程序在哪个目录中运行?

关于 c#:如何找出我的控制台应用程序在哪个目录中运行?

How do I find out what directory my console app is running in?

如何使用 C# 找出我的控制台应用程序在哪个目录中运行?


获取.exe文件所在目录:

1
AppDomain.CurrentDomain.BaseDirectory

获取当前目录:

1
Environment.CurrentDirectory

根据授予您的应用程序的权限、卷影复制是否有效以及其他调用和部署选项,不同的方法可能会起作用或产生不同的结果,因此您必须明智地选择您的武器。话说回来,
对于在其所在机器上本地执行的完全受信任的控制台应用程序,以下所有内容都将产生相同的结果:

1
2
3
4
Console.WriteLine( Assembly.GetEntryAssembly().Location );
Console.WriteLine( new Uri(Assembly.GetEntryAssembly().CodeBase).LocalPath );
Console.WriteLine( Environment.GetCommandLineArgs()[0] );
Console.WriteLine( Process.GetCurrentProcess().MainModule.FileName );

您需要查阅上述成员的文档以查看所需的确切权限。


Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)


在 .NET 中,您可以使用 System.Environment.CurrentDirectory 来获取启动进程的目录。
System.Reflection.Assembly.GetExecutingAssembly().Location 会告诉你当前正在执行的程序集的位置(只有当当前正在执行的程序集是从与进程开始的程序集位置不同的地方加载时才有意义)。


假设您的 .Net 核心控制台应用程序项目名称是 DataPrep。

获取项目基础目录:

1
Console.WriteLine(Environment.CurrentDirectory);

输出:~DataPrep\\\\bin\\\\Debug\\
ecoreapp2.2

1
2
3
Get Project .csproj file directory:
string ProjectDirPath = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, @"..\\..\\.."));
Console.WriteLine(ProjectDirPath);

输出:~DataPrep\\\\


Application.StartUpPath;


在 windows 上(不确定 Unix 等)它是命令行中的第一个参数。

在 C/C 中,argv 中的第一个项目*

WinAPI - GetModuleFileName(NULL, char*, MAX_PATH)


AppContext.BaseDirectory 用于 .net5。


推荐阅读

    更新文件命令linux?

    更新文件命令linux?,工作,系统,地址,信息,时间,命令,目录,基础,标准,网络,lin

    linux运行图形界命令?

    linux运行图形界命令?,系统,密码,地址,电脑,图形界面,地方,工具,界面,终端,

    linux怎样运行命令?

    linux怎样运行命令?,系统,工作,信息,基础,地址,命令,目录,工具,密码,一致,Lin

    linux下读取文件命令?

    linux下读取文件命令?,系统,工作,地址,数字,图片,信息,网络,命令,文件,一致,l

    linux改文件夹名命令?

    linux改文件夹名命令?,名字,软件,命令,文件,系统,目录,目标,文件名,源文件,

    linux建文件命令格式?

    linux建文件命令格式?,系统,名字,名称,时间,密码,命令,文件,文件夹,不了,数

    下载文件的命令linux?

    下载文件的命令linux?,平台,工具,服务,密码,软件,网络,位置,代理,手机,工作,

    linux命令文件传输?

    linux命令文件传输?,系统,数据,命令,文件,基本知识,源文件,目录,目标,功能,

    linux编译完运行命令?

    linux编译完运行命令?,系统,代码,环境,工具,信息,命令,文件,程序,终端,编辑,

    linux文件全选命令?

    linux文件全选命令?,电脑,系统,环境,代码,平台,服务,快捷键,文件,命令,权限,l

    linux浏览文件类命令?

    linux浏览文件类命令?,系统,信息,数据,情况,命令,标准,时间,文件,概念,管理,

    linux打包文件夹命令?

    linux打包文件夹命令?,系统,工具,管理,图片,文件,命令,位置,软件,目录,格式,l

    linux中统计文件命令?

    linux中统计文件命令?,系统,信息,数据,情况,工作,文件,时间,档案,标准,名称,L

    linux命令程序运行?

    linux命令程序运行?,状态,系统,服务,情况,命令,进程,软件,数据,发行,时间,Lin

    linux重名名文件命令?

    linux重名名文件命令?,图片,名称,名字,文件,命令,位置,代码,软件,系统,文件

    linux的建立文件命令?

    linux的建立文件命令?,名称,系统,时间,名字,命令,文件夹,位置,密码,不了,文

    linux06文件命令?

    linux06文件命令?,数字,系统,工作,第一,名字,信息,管理,文件,目录,命令,linux

    linux将文件备份命令?

    linux将文件备份命令?,系统,密码,设备,软件,通讯,较大,认证,服务,数据,文件,L

    linux运行脚本命令?

    linux运行脚本命令?,系统,代码,服务,文件,工具,平台,网站,脚本,命令,方法,Lin