Использование/или\\для путей к папкам в С#

При написании путей файлов в С# я обнаружил, что могу либо написать что-то вроде "C: \" или "C:/" и получить тот же путь. Какой из них рекомендуется? Я где-то слышал, что использование одного/было более рекомендовано, чем использование\(с\в качестве экранированной последовательности).

Ответы

Ответ 1

Windows поддерживает оба разделителя путей, поэтому обе они будут работать, по крайней мере, для локальных путей (/не будет работать для сетевых путей). Дело в том, что фактическая польза от использования рабочего, но не стандартного разделителя путей (/) в Windows отсутствует, особенно потому, что вы можете использовать строковый литерал:

string path = @"C:\"  //Look ma, no escape

Единственный случай, когда я мог бы увидеть преимущество использования /separator, - это когда вы будете работать только с относительными путями и будете использовать код в Windows и Linux. Затем вы можете указать "../foo/bar/baz" в тот же каталог. Но даже в этом случае лучше оставить пространство имен System.IO(Path.DirectorySeparatorChar, Path.Combine), чтобы позаботиться о таких проблемах.

Ответ 3

Используйте Path.Combine, и вам не нужно беспокоиться о такой семантике.

Ответ 4

Я пишу пути в С# следующим образом:

@ "C:\My\Path"

Символ @отключается\экранирование.

Ответ 5

Это не проблема с С# - это проблема Windows. Пути в Windows обычно отображаются с обратной косой чертой: C:. По-моему, это то, что вы должны использовать в С#. Используйте @ "C: \", чтобы предотвратить специальную обработку символов backslaash.