如何获取应用程序路径
本文关键字:应用程序 路径 获取 何获取 | 更新日期: 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));