看看这个伪代码:
string exe_path = system.get_exe_path()
print "This executable is located in " + exe_path
如果我建立了上述程序,并放置在可执行文件C:/meow/
,这将打印出This executable is located in C:/meow/
每次运行时,无论当前工作目录。
我怎么能轻易做到这一点使用C#
看看这个伪代码:
string exe_path = system.get_exe_path()
print "This executable is located in " + exe_path
如果我建立了上述程序,并放置在可执行文件C:/meow/
,这将打印出This executable is located in C:/meow/
每次运行时,无论当前工作目录。
我怎么能轻易做到这一点使用C#
MSDN有一篇文章 ,说使用System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase
; 如果你需要的目录,使用System.IO.Path.GetDirectoryName
该结果。
或者,还有更短的Application.ExecutablePath
其“获取启动了应用程序,包括可执行文件名的可执行文件的路径”,因此这可能意味着它是稍微不太可靠取决于应用程序如何启动。
AppDomain.CurrentDomain.BaseDirectory
using System.Reflection;
string myExeDir = new FileInfo(Assembly.GetEntryAssembly().Location).Directory.ToString();
“获取包含清单加载的文件的路径或UNC位置。”
请参阅: http://msdn.microsoft.com/en-us/library/system.reflection.assembly.location.aspx
Application.ResourceAssembly.Location
var dir = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
我跳在最精彩的答案,发现自己没有得到我所期待的。 我不得不读的评论找到我一直在寻找。
出于这个原因我张贴在注释中列出给它应有的曝光答案。
假设我有在控制台应用程序config文件,现在我越来越喜欢下面。
Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName + "\\YourFolderName\\log4net.config";
在我的身边,我用了,用表格的应用:
String Directory = System.Windows.Forms.Application.StartupPath;
它需要的应用程序的启动路径。