Использование/или\\для путей к папкам в С#
При написании путей файлов в С# я обнаружил, что могу либо написать что-то вроде "C: \" или "C:/" и получить тот же путь. Какой из них рекомендуется? Я где-то слышал, что использование одного/было более рекомендовано, чем использование\(с\в качестве экранированной последовательности).
Ответы
Ответ 1
Windows поддерживает оба разделителя путей, поэтому обе они будут работать, по крайней мере, для локальных путей (/не будет работать для сетевых путей). Дело в том, что фактическая польза от использования рабочего, но не стандартного разделителя путей (/) в Windows отсутствует, особенно потому, что вы можете использовать строковый литерал:
string path = @"C:\" //Look ma, no escape
Единственный случай, когда я мог бы увидеть преимущество использования /separator, - это когда вы будете работать только с относительными путями и будете использовать код в Windows и Linux. Затем вы можете указать "../foo/bar/baz" в тот же каталог. Но даже в этом случае лучше оставить пространство имен System.IO(Path.DirectorySeparatorChar, Path.Combine), чтобы позаботиться о таких проблемах.
Ответ 2
Пожалуйста, используйте Path.DirectorySeparatorChar или лучше, поскольку Пойта предложил использовать Path.Combine.
Ответ 3
Используйте Path.Combine
, и вам не нужно беспокоиться о такой семантике.
Ответ 4
Я пишу пути в С# следующим образом:
@ "C:\My\Path"
Символ @отключается\экранирование.
Ответ 5
Это не проблема с С# - это проблема Windows. Пути в Windows обычно отображаются с обратной косой чертой: C:. По-моему, это то, что вы должны использовать в С#. Используйте @ "C: \", чтобы предотвратить специальную обработку символов backslaash.