如何获得应用程序路径

时间:2011-04-09 17:50:08

标签: c# c#-4.0 c#-2.0

我正在使用

string path = AppDomain.CurrentDomain.BaseDirectory;获取我的应用程序路径,但这会提供类似

的内容
C:\Projects\XYZ\ABC\bin\Debug

我不想要bin \ Debug。有没有办法实现这个目标?

7 个答案:

答案 0 :(得分:11)

AppDomain.CurrentDomain.BaseDirectory属性获取程序集解析程序用于探测程序集的基目录。

所以它应该100%正常运作。如果您要构建应用程序,请将其剪切并粘贴到其他文件夹或驱动器中的其他位置。这些变化将反映在这个属性中。

另外,你提到你不想要这个部分bin\Debug,所以你想要之前的那个?请具体说明。

答案 1 :(得分:2)

如果你想弄清楚应用程序的可执行路径(据我所知):

string path = Application.ExecutablePath;

答案 2 :(得分:1)

您正在IDE中运行该程序,这就是您获得此类路径的原因。尝试构建应用程序并在IDE外部运行它 - 您将看到该方法正常工作。

编辑:您获得的是因为IDE运行您的应用程序的调试版本,该版本位于$ PROJECT_DIR \ bin \ Debug。

答案 3 :(得分:1)

string LPath;
string Location = AppDomain.CurrentDomain.BaseDirectory + "Reports\\rptEmployInfoStat.rpt";
int index;
index = Location.IndexOf("bin");
if (index > 0)
{
     LPath = Location.Remove(index, 10);
}
else
{
     LPath = Location;
}
rd.Load(@LPath);

答案 4 :(得分:1)

说实话,这不是最好的实践,但这会给你想要的东西:

string dir = System.IO.Directory.GetCurrentDirectory().Replace("\\bin\\Debug", "");

答案 5 :(得分:0)

我正在使用它:

String appSettingsPath = Directory.GetCurrentDirectory();

        if (!File.Exists(Path.Combine(appSettingsPath, "appsettings.json")))
            appSettingsPath = Path.GetDirectoryName(Path.GetDirectoryName(appSettingsPath));

答案 6 :(得分:0)

得到想要的东西:

var enviroment = System.Environment.CurrentDirectory;
string projectDirectory = Directory.GetParent(enviroment).Parent.FullName;