我发现的变体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:\