2014-11-25 2 views
0

У меня есть строка, которая обозначает полный путь (обратите внимание, это на OSX, но я считаю, что это должно быть аналогичное решение для любой ОС):Побег путь с «..» (родитель) в C#

var path = "/Some/Path/../Projects/iOS/ThirdParty/myPath"; 

Проверка по этому пути, чтобы увидеть, если он существует возвращает ложь:

Directory.Exists(path) // return false 

есть ли встроенный вспомогательный метод или класс, который может помочь в переводе это в полный путь, который не содержит «..»?

ответ

4

Вы пытаетесь преобразовать относительный путь в абсолютный. Вы можете использовать Path.GetFullPath сделать это:

var relativePath = "/Some/Path/../Projects/iOS/ThirdParty/myPath"; 
var absolutePath = Path.GetFullPath(relativePath); 
+0

Пожалуйста, направляйте ваше внимание на устройство, которое я держу в руке ... –

+0

Удивительно, я ухожу, чтобы стать фермером в сельской Айове (они там занимаются фермером? Как британец, я понятия не имею ...) – DavidG

-3

в заявлении вар пути = "/Some/Path/../Projects/iOS/ThirdParty/myPath";

'/' действует как escape-символ, вам нужно объявить инструкцию, добавив символ @ в начале, как показано ниже.

var path = @ "/ Some/Path /../ Projects/iOS/ThirdParty/myPath";

+3

'/' не является символом escape. Вы можете думать о '\\' –

Смежные вопросы