我想获取应用程序所在的路径。我通过以下代码获取物理路径:
string filePath = System.Web.HttpContext.Current.Request.PhysicalApplicationPath;
我得到这样的结果:
D:\\Projects\\UI\\IAC.SMS.MvcApp\\
我知道我可以通过" \"来分隔字符串。并将它们组合在一起。但有一个简单的方法可以退后一步并得到这个吗?
D:\\Projects\\UI\\
答案 0 :(得分:4)
您正在寻找Directory.GetParent方法。
var directoryName = Path.GetDirectoryName("D:\\Projects\\UI\\IAC.SMS.MvcApp\\");
var parentName = Directory.GetParent(directoryName).FullName;
或者
var parentName = new DirectoryInfo("D:\\Projects\\UI\\IAC.SMS.MvcApp\\").Parent.FullName;
答案 1 :(得分:3)
Directory.GetParent在某些情况下会起作用,但由于创建了一个DirectoryInfo对象而导致性能下降,该对象将填充有关可能不需要的目录的各种信息(例如创建时间)。如果您需要的只是路径,我建议Path.GetDirectoryName,特别是因为使用此方法路径不必存在,并且您不必拥有访问权限的权限呼吁成功。
var filePath = System.Web.HttpContext.Current.Request.PhysicalApplicationPath;
var parent = Path.GetDirectoryName(filePath);