如何在 C# 中的路径中向后退一步

本文关键字:退一步 路径 | 更新日期: 2023-09-27 18:36:16

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

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

结果我得到这样的东西:

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

我知道我可以用"''"分隔字符串并将它们组合在一起。但是有没有一种简单的方法可以退后一步并得到这个?

D:''Projects''UI''

如何在 C# 中的路径中向后退一步

您正在寻找 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);