Odkryłem, że warianty System.IO.Path.Combine(myPath, "..")
są najłatwiejsze i najbardziej niezawodne. Tym bardziej, jeśli prawdą jest to, co mówi northben, to GetParent wymaga dodatkowego wywołania, jeśli na końcu znajduje się ukośnik. To dla mnie niewiarygodne.
Path.Combine zapewnia, że nigdy nie pomylisz się z ukośnikami.
..
zachowuje się dokładnie tak samo, jak wszędzie indziej w systemie Windows. Możesz dodać dowolną liczbę \..
do ścieżki w cmd lub eksploratorze i będzie zachowywać się dokładnie tak, jak opisuję poniżej.
Niektóre podstawowe ..
zachowania:
- Jeśli istnieje nazwa pliku,
..
odetnie ją:
Path.Combine(@"D:\Grandparent\Parent\Child.txt", "..")
=> D:\Grandparent\Parent\
- Jeśli ścieżka jest katalogiem,
..
przejdzie na wyższy poziom:
Path.Combine(@"D:\Grandparent\Parent\", "..")
=> D:\Grandparent\
..\..
przestrzega tych samych zasad, dwa razy z rzędu:
Path.Combine(@"D:\Grandparent\Parent\Child.txt", @"..\..")
=> D:\Grandparent\
Path.Combine(@"D:\Grandparent\Parent\", @"..\..")
=>D:\
- I to ma dokładnie ten sam efekt:
Path.Combine(@"D:\Grandparent\Parent\Child.txt", "..", "..")
=> D:\Grandparent\
Path.Combine(@"D:\Grandparent\Parent\", "..", "..")
=>D:\