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

Joh*_*han 82 .net c#

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

Hal*_*rim 150

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

AppDomain.CurrentDomain.BaseDirectory
Run Code Online (Sandbox Code Playgroud)

要获取当前目录:

Environment.CurrentDirectory
Run Code Online (Sandbox Code Playgroud)

  • 对于.NET Core,它是`System.AppContext.BaseDirectory`. (8认同)
  • 谢谢.帮助何时C#.exe位于一个文件夹中,但是从另一个文件夹调用(例如:当它在系统PATH上时) (2认同)

Ati*_*ziz 13

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

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 );
Run Code Online (Sandbox Code Playgroud)

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


Jas*_*ris 5

Path.GetDirectoryName(Assembly.GetExecutingAssembly()位置)