如何在 C# 中的路径中向后退一步
how to go one step backwards in path in C#
我想获取我的应用程序所在的路径,我通过以下代码获取物理路径:
string filePath = System.Web.HttpContext.Current.Request.PhysicalApplicationPath;
结果是这样的:
D:\Projects\UI\IAC.SMS.MvcApp\
我知道我可以用“\”分隔字符串并将它们组合在一起。但是有没有一种简单的方法可以退一步得到这个?
D:\Projects\UI\
您正在寻找 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;
Directory.GetParent 在某些情况下会起作用,但由于创建 DirectoryInfo 对象会导致性能下降,该对象将填充有关可能不需要的目录的各种信息(例如创建时间)。如果您只需要路径,我会推荐 Path.GetDirectoryName,尤其是因为使用此方法时,路径不必存在,并且您无需获得访问权限即可成功调用。
var filePath = System.Web.HttpContext.Current.Request.PhysicalApplicationPath;
var parent = Path.GetDirectoryName(filePath);
我想获取我的应用程序所在的路径,我通过以下代码获取物理路径:
string filePath = System.Web.HttpContext.Current.Request.PhysicalApplicationPath;
结果是这样的:
D:\Projects\UI\IAC.SMS.MvcApp\
我知道我可以用“\”分隔字符串并将它们组合在一起。但是有没有一种简单的方法可以退一步得到这个?
D:\Projects\UI\
您正在寻找 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;
Directory.GetParent 在某些情况下会起作用,但由于创建 DirectoryInfo 对象会导致性能下降,该对象将填充有关可能不需要的目录的各种信息(例如创建时间)。如果您只需要路径,我会推荐 Path.GetDirectoryName,尤其是因为使用此方法时,路径不必存在,并且您无需获得访问权限即可成功调用。
var filePath = System.Web.HttpContext.Current.Request.PhysicalApplicationPath;
var parent = Path.GetDirectoryName(filePath);