Tôi đã tìm thấy các biến thể System.IO.Path.Combine(myPath, "..")
là dễ nhất và đáng tin cậy nhất. Thậm chí nhiều hơn thế nếu những gì northben nói là đúng, GetParent đó yêu cầu thêm một cuộc gọi nếu có dấu gạch chéo. Điều đó, đối với tôi, là không đáng tin cậy.
Path.Combine đảm bảo rằng bạn sẽ không bao giờ mắc phải những dấu gạch chéo.
..
hoạt động giống hệt như ở mọi nơi khác trong Windows. Bạn có thể thêm bất kỳ số nào \..
vào đường dẫn trong cmd hoặc explorer và nó sẽ hoạt động chính xác như tôi mô tả bên dưới.
Một số ..
hành vi cơ bản :
- Nếu có tên tệp,
..
sẽ cắt nó đi:
Path.Combine(@"D:\Grandparent\Parent\Child.txt", "..")
=> D:\Grandparent\Parent\
- Nếu đường dẫn là một thư mục,
..
sẽ di chuyển lên một cấp:
Path.Combine(@"D:\Grandparent\Parent\", "..")
=> D:\Grandparent\
..\..
tuân theo các quy tắc tương tự, hai lần liên tiếp:
Path.Combine(@"D:\Grandparent\Parent\Child.txt", @"..\..")
=> D:\Grandparent\
Path.Combine(@"D:\Grandparent\Parent\", @"..\..")
=>D:\
- Và điều này có cùng tác dụng:
Path.Combine(@"D:\Grandparent\Parent\Child.txt", "..", "..")
=> D:\Grandparent\
Path.Combine(@"D:\Grandparent\Parent\", "..", "..")
=>D:\