En path
ne contient pas de double backslash. "blah\\blah"
est en fait blah\blah
.
Dans les chaînes littérales normales (celles qui ne commencent pas par un caractère @
), vous devez échapper à certains caractères en mettant une barre oblique inverse ( \
) en face d'eux. L'un de ces caractères est la barre oblique inversée elle-même, donc si vous voulez mettre une barre oblique inversée dans une chaîne de caractères, vous l'échappez avec une autre barre oblique inversée, c'est pourquoi path
contient tous ces doubles antislashs. Au moment de l'exécution, ce seront des backslashes simples.
Voir ici pour les séquences d'échappement disponibles : FAQ C# : Séquences d'échappement
Chaînes Verbatim (celles qui commencent par un @
), d'autre part, ne nécessitent pas d'échappement pour la plupart de ces caractères. Ainsi, @"\"
est en fait \
. Les seuls caractères que vous devez échapper dans une chaîne verbatim sont les guillemets. Pour ce faire, il suffit de taper un guillemet double. Ainsi, @""""
est en fait "
.
Donc si tu voulais mettre d:\project\Bloomberg\trunk\UI.Demo\
en une chaîne de caractères, vous avez deux possibilités.
Littéral de chaîne normal (notez que \
est échappé) :
var path = "d:\\project\\Bloomberg\\trunk\\UI.Demo\\";
ou une chaîne littérale verbatim (pas besoin d'échappement \
):
var path = @"d:\project\Bloomberg\trunk\UI.Demo\";