Я хочу разделить путь на "\\" в c # - PullRequest
3 голосов
/ 25 июня 2011

Как я могу разделить путь на "\", это даст мне синтаксическую ошибку, если я использую path.split("\\");?

Ответы [ 6 ]

27 голосов
/ 25 июня 2011

Вы должны использовать

path.Split(Path.DirectorySeparatorChar);

если вы пытаетесь разделить путь к файлу на основе собственного разделителя пути.

7 голосов
/ 25 июня 2011

Нет перегрузки string.Split, которая принимает строку.(Кроме того, C # чувствителен к регистру, поэтому вам нужно Split, а не split).Однако вы можете использовать:

string bits = path.Split('\\');

, который будет использовать перегрузку с параметром params char[].Это эквивалентно:

string bits = path.Split(new char[] { '\\' });

Это предполагает, что вы определенно хотите разделить на обратную косую черту.Вы возможно хотите разделить по разделителю каталогов для операционной системы, в которой вы работаете, и в этом случае Path.DirectorySeparatorChar, вероятно, будет правильным подходом ... это будет / в Unix и \ в Windows.С другой стороны, это не поможет, если вы попытаетесь проанализировать путь к файловой системе Windows на странице ASP.NET, работающей в Unix.Другими словами, это зависит от вашего контекста:)

Другая альтернатива - использовать методы для Path и DirectoryInfo для получения информации о путях вбольше способов, чувствительных к файловой системе.

5 голосов
/ 25 июня 2011

Попробуйте path.Split('\\') --- так, одиночная кавычка (для символа)

Чтобы использовать строку, это работает:

path.Split(new[] {"\\"}, StringSplitOptions.None)

Чтобы использовать строку, вы должны указать массивстроки.Я так и не понял почему:

1 голос
/ 06 декабря 2017

Чтобы быть в безопасности, вы можете использовать:

path.Split(new[] { Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar });
1 голос
/ 31 июля 2013

В окнах также допускается использование прямой косой черты, в функциях C # Path и в командной строке, как минимум, в Windows 7 / XP.

Например: оба из них дают одинаковые результаты для меня:

dir "C:/Python33/Lib/xml"
dir "C:\Python33\Lib\xml"
(In C:)
dir "Python33/Lib/xml"
dir "Python33\Lib\xml"

В окнах ни '/', ни '\' не являются допустимыми символами для имени файла.В Linux '\' - это нормально в именах файлов, так что вы должны знать об этом при разборе обоих.

Так что, если вы хотите поддерживать пути в обеих формах (как я), вы можете сделать:

path.Split(new char[] {'/', '\\'});

В Linux, вероятно, было бы безопаснее использовать Path.DirectorySeparatorChar.

0 голосов
/ 25 июня 2011
Path.Split(new char[] { '\\\' });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...