Вы можете использовать Path.GetDirectoryName
, но это глупо. Он просто выполняет манипуляции со строками, не зная, как на самом деле выглядит файловая система. Например, если вы сделаете Path.GetDirectoryName(@"E:\Folder\")
, он вернет "E:\Folder"
, потому что в конце строки, которую вы дали, была косая черта. Или вы могли бы скормить ему папку, которой даже не существует, и она все равно даст вам ответ.
Я могу предложить другой способ сделать это: сохранить объект DirectoryInfo
для текущего рабочего каталога. Например:
var curDirectory = new DirectoryInfo(@"E:\Folder");
Когда вам нужно отобразить его, используйте curDirecotry.FullName
, который вернет полный путь, например "E:\Folder"
. Затем, когда вам нужно перейти в каталог, это одна строка без каких-либо манипуляций со строками:
curDirectory = curDirectory.Parent;
Хотя вам нужно проверить его на null
, поскольку, если вы уже находитесь в корневом каталоге диска, Parent
будет null
.
DirectoryInfo
фактически смотрит на файловую систему, поэтому вы можете быть уверены, что она всегда действительна. Кроме того, вы также можете использовать его для просмотра содержимого папки, что, я уверен, вы захотите сделать.