我正在处理一个应用程序,其中我有一个图像文件夹相对于我的应用程序根。我希望能够在属性->设置设计器中指定此相对路径。“\图像\”。我遇到的问题是在Environment.CurrentDirectory通过OpenFileDialog更改的情况下,相对路径不能解决到正确的位置。是否有一种方法可以在Settings文件中指定一个路径,它意味着始终从应用程序目录开始,而不是当前目录?我知道我总是可以动态地将应用程序路径连接到相对路径的前面,但是我希望我的Settings属性能够自己解决问题。
发布于 2008-11-12 14:24:51
据我所知,没有任何内置的功能将允许这种类型的路径解析。最好的选择是动态确定执行目录的应用程序,并将图像路径连接到它。由于提到的原因,您不想特别使用Environment.CurrentDirectory --在这种情况下,当前目录可能并不总是正确的。
找到正在执行的程序集位置的最安全的代码是:
public string ExecutingAssemblyPath()
{
Assembly actualAssembly = Assembly.GetEntryAssembly();
if (this.actualAssembly == null)
{
actualAssembly = Assembly.GetCallingAssembly();
}
return actualAssembly.Location;
}发布于 2008-11-12 14:25:55
你在找Application.ExecutablePath吗?这将告诉您应用程序的可执行文件在哪里,删除可执行文件的名称,然后追加您的路径。
发布于 2009-01-28 12:36:46
这似乎同时适用于WinForms和ASP.NET (给出了配置文件的路径):
new System.IO.FileInfo(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile).Directory;对于Windows和控制台应用程序,最明显的方法是使用:
Application.StartupPathhttps://stackoverflow.com/questions/284061
复制相似问题