84 votes

Séquence d'échappement non reconnue pour la chaîne de chemin contenant des barres obliques inverses

Le code suivant génère une erreur du compilateur concernant une "séquence d'échappement non reconnue" pour chaque antislash :

string foo = "D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";

Je suppose que je dois échapper à l'antislash ? Comment puis-je faire ça ?

210voto

Brandon Points 35624

Vous pouvez soit utiliser un double backslash à chaque fois

string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";

soit utiliser le symbole @

string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";

25voto

Josh Points 6036

Essayez ceci :

chaîne foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";

Le problème est que dans une chaîne, un \ est un caractère d'échappement. En utilisant le signe @ vous dites au compilateur d'ignorer les caractères d'échappement.

Vous pouvez également vous en sortir en échappant le \ :

chaîne foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";

12voto

Piotr Czapla Points 8626
var foo = @"D:\Projets\Quelque\Sorte\De\Problème\De\Chemin\wuhoo.xml";

9voto

Scott Weinstein Points 11404

Si votre chaîne est un chemin de fichier, comme dans votre exemple, vous pouvez également utiliser des chemins de fichier de style Unix :

chaîne foo = "D:/Projets/Some/Kind/Of/Pathproblem/wuhoo.xml";

Mais les autres réponses ont les solutions plus générales pour l'échappement de chaîne en C#.

5voto

Bob Kaufman Points 6748
chaîne foo = "D:\\Projets\\Certains\\Sorte\\De\\ProblèmeDeChemin\\wuhoo.xml";

Cela fonctionnera, ou les exemples précédents fonctionneront également. @"..." signifie traiter tout ce qui se trouve entre les guillemets littéralement, donc vous pouvez faire

@"Bonjour
monde"

Pour inclure un saut de ligne littéral. Je suis plus old school et préfère échapper "\" avec "\\"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X