如何获取应用程序路径

本文关键字:应用程序 路径 获取 何获取 | 更新日期: 2023-09-27 17:49:39

我正在使用

string path = AppDomain.CurrentDomain.BaseDirectory;获取我的应用程序路径,但这给出了类似

的东西
C:'Projects'XYZ'ABC'bin'Debug

我不想要bin'Debug .有没有办法实现这个?

如何获取应用程序路径

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

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

另外,你提到你不想要这部分bin'Debug,所以你想要在那之前的是什么?

得到你想要的:

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

如果你想找出你的应用程序的可执行路径(如我所理解的):

string path = Application.ExecutablePath;
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);

老实说,这不是最好的做法,但这会给你想要的:

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

您在IDE中运行程序,这就是为什么您会得到这种路径的原因。尝试构建应用程序并在IDE外运行它-你会看到该方法工作正常。

编辑:你得到的是因为IDE运行你的应用程序的调试构建位于$PROJECT_DIR'bin' debug .

我使用这个:

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