I use this code for finding the debug directory
public string str_directory = Environment.CurrentDirectory.ToString();
\"C:\\\\Us
I've found variants of System.IO.Path.Combine(myPath, "..")
to be the easiest and most reliable. Even more so if what northben says is true, that GetParent requires an extra call if there is a trailing slash. That, to me, is unreliable.
Path.Combine makes sure you never go wrong with slashes.
..
behaves exactly like it does everywhere else in Windows. You can add any number of \..
to a path in cmd or explorer and it will behave exactly as I describe below.
Some basic ..
behavior:
..
will chop that off:Path.Combine(@"D:\Grandparent\Parent\Child.txt", "..")
=> D:\Grandparent\Parent\
..
will move up a level:Path.Combine(@"D:\Grandparent\Parent\", "..")
=> D:\Grandparent\
..\..
follows the same rules, twice in a row: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:\