如何在控制台应用程序中找到应用程序的路径?
在Windows 窗体中 ,我可以使用Application.StartupPath
来查找当前路径,但这似乎在控制台应用程序中不可用。
System.Reflection.Assembly.GetExecutingAssembly()
。 Location
1
如果您想要的只是目录,请将它与System.IO.Path.GetDirectoryName
结合使用。
1 根据 Mr.Mindor 的评论:
System.Reflection.Assembly.GetExecutingAssembly().Location
返回执行程序集当前所在的位置,可能是也可能不是程序集在不执行时所在的位置。对于卷影复制程序集,您将获得临时目录中的路径。System.Reflection.Assembly.GetExecutingAssembly().CodeBase
将返回程序集的 “永久” 路径。
您可以使用以下代码获取当前的应用程序目录。
AppDomain.CurrentDomain.BaseDirectory
您有两种方法可以找到应用程序的目录,您选择的目录取决于您的目的。
// to get the location the assembly is executing from
//(not necessarily where the it normally resides on disk)
// in the case of the using shadow copies, for instance in NUnit tests,
// this will be in a temp directory.
string path = System.Reflection.Assembly.GetExecutingAssembly().Location;
//To get the location the assembly normally resides on disk or the install directory
string path = System.Reflection.Assembly.GetExecutingAssembly().CodeBase;
//once you have the path you get the directory with:
var directory = System.IO.Path.GetDirectoryName(path);