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

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

要获取.exe文件所在的目录,请执行以下操作:

AppDomain.CurrentDomain.BaseDirectory 

要获取当前目录:

 Environment.CurrentDirectory 

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

 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 ); 

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

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

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

在Windows(不知道Unix等),这是命令行中的第一个参数。

在argv *中的C / C ++ firts项目中,

WinAPI – GetModuleFileName(NULL,char *,MAX_PATH)

Application.StartUpPath;