我发现的变体System.IO.Path.Combine(myPath, "..")是最简单,最可靠的。更重要的是,如果northben所说的是正确的,那么如果出现斜杠,则GetParent需要额外的调用。对我来说,那是不可靠的。
Path.Combine确保使用斜线永远不会出错。
..行为与Windows中的其他任何地方一样。您可以\..在cmd或资源管理器中的路径中添加任意数量的,并且其行为将与我在下面描述的完全一样。
一些基本..行为:
- 如果有文件名,
..则将其砍掉:
Path.Combine(@"D:\Grandparent\Parent\Child.txt", "..") => D:\Grandparent\Parent\
- 如果路径是目录,
..将向上移动一个级别:
Path.Combine(@"D:\Grandparent\Parent\", "..") => D:\Grandparent\
..\.. 遵循相同的规则,连续两次:
Path.Combine(@"D:\Grandparent\Parent\Child.txt", @"..\..")=> D:\Grandparent\
Path.Combine(@"D:\Grandparent\Parent\", @"..\..")=>D:\
- 这具有完全相同的效果:
Path.Combine(@"D:\Grandparent\Parent\Child.txt", "..", "..")=> D:\Grandparent\
Path.Combine(@"D:\Grandparent\Parent\", "..", "..")=>D:\