我有一个C#应用程序,假设它从bin目录
运行string current_directory = Directory.GetCurrentDirectory(); //get current directory, this is the bin dir
string parent_dir = Directory.GetParent(current_directory).ToString();// this is parent of bin dir
string _Config1 = parent_dir + "\\config\\x.cfg";
string _Config2 = parent_dir + "\\config\\y.cfg";
string _Log = parent_dir + "\\log\\z.log";
问题是由于某些原因,用户无法进入bin目录并运行应用程序(只需输入" application_name")。他必须使用路径(即d:\blah\1\blah\2\blah\3\bin\application_name
)
当他这样做时,他得到了
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly()。罗阳离子)
所以要么我必须捕获他用来运行程序的路径并在我的程序中使用它,或者以某种方式使我的应用程序能够使用路径运行。
答案 0 :(得分:1)
您可以使用AppDomain.CurrentDomain.BaseDirectory
。
答案 1 :(得分:0)
WinForms
使用Application.StartupPath
。
答案 2 :(得分:0)
您可以使用反射:
var path = System.IO.Path.GetDirectoryName( System.Reflection.Assembly.GetExecutingAssembly().GetName().GetCodebase );