我如何找到我的控制台应用程序正在哪个目录中运行?

问题描述 投票:86回答:7

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

c# .net console-application
7个回答
155
投票

获取.exe文件所在的目录:

AppDomain.CurrentDomain.BaseDirectory

获取当前目录:

Environment.CurrentDirectory

15
投票

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

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

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


5
投票

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


3
投票

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


1
投票

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


1
投票

Application.StartUpPath;


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.