мы должны использовать Path.DirectorySeperatorChar C # - PullRequest
4 голосов
/ 31 июля 2009

Вопрос, который сейчас скрывается в моей голове. В чем важность Path.DirectorySeperatorChar? Я имею в виду, мы не можем просто поставить вместо этого '\' - что, я думаю, быстрее, чем вызов свойства особенно если вы создаете огромное количество путей в вашем приложении? Есть ли причина для этого? может ли быть другой символ Char для разделения пути к папке / файлу, кроме '\'? может в другой операционной системе?

Ответы [ 5 ]

15 голосов
/ 31 июля 2009

Да, используйте собственность. Это будет более ориентировано на будущее. Вы будете совместимы с Mono (Linux), но MS.NET может также перейти на другие платформы (например, Compact и Micro Framework).

Но лучший способ - использовать Path.Combine() и Path.GetFileName() и др., Тогда вам вообще не понадобится символ-разделитель.

3 голосов
/ 31 июля 2009

Используйте Path.Combine() для объединения путей. К сожалению, это не так быстро, как могло бы быть, поскольку методы класса Path работают на string вместо специальной структуры (возможно, Path как нестатический класс?). Почему это проблема, которую вы спрашиваете? Этот драгоценный камень:

Исключения:
ArgumentException path1 или path2 содержат один или несколько недопустимых символов, определенных в GetInvalidPathChars.

1 голос
/ 31 июля 2009

Windows принимает / для разделителей пути не так ли? Просто используйте это, чтобы быть совместимым. Однако лучше использовать метод объединения.

1 голос
/ 31 июля 2009

В Linux разделитель - это /. И у нас там есть Моно.

0 голосов
/ 07 сентября 2011

Чтобы сделать код совместимым с другими платформами, такими как Unix, которые используют прямую косую черту для разделителя пути. Я полагаю, что в самой Windows также есть некоторые особые случаи, например, с путями к драйверам устройств.

Пояснение к ответу Джоша: Windows , как правило, допускает косую черту для разделителей пути, но не каждое приложение Windows допускает, и в некоторых местах Windows также может не быть. Например, в командной строке косая черта обычно вводит параметр. Поэтому я бы не стал на это полагаться.

Я согласен, однако, что это довольно многословно для того, что вы хотите часто использовать в некоторых ситуациях. В моем собственном (Delphi) коде я использовал метод «AddSlash», который при необходимости добавлял косую черту правильного вида. Можно представить себе новый языковой символ или символьную константу, которая будет декодирована на правильный символ для платформы.

...