如何在C#中向后退一步

时间:2015-01-06 06:27:15

标签: c# filepath

我想获取应用程序所在的路径。我通过以下代码获取物理路径:

string filePath = System.Web.HttpContext.Current.Request.PhysicalApplicationPath;

我得到这样的结果:

D:\\Projects\\UI\\IAC.SMS.MvcApp\\

我知道我可以通过" \"来分隔字符串。并将它们组合在一起。但有一个简单的方法可以退后一步并得到这个吗?

D:\\Projects\\UI\\

2 个答案:

答案 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);