Le code suivant génère une erreur du compilateur concernant une «séquence d'échappement non reconnue» pour chaque barre oblique inverse:
string foo = "D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
Je suppose que j'ai besoin d'échapper à la barre oblique inverse? Comment je fais ça?
Essaye ça:
string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
Le problème est que dans une chaîne, a
\
est un caractère d'échappement. En utilisant le@
signe, vous indiquez au compilateur d'ignorer les caractères d'échappement.Vous pouvez également vous en sortir en échappant à
\
:string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
la source
var foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
la source
Si votre chaîne est un chemin de fichier, comme dans votre exemple, vous pouvez également utiliser des chemins de fichier de style Unix:
string foo = "D:/Projects/Some/Kind/Of/Pathproblem/wuhoo.xml";
Mais les autres réponses ont les solutions plus générales à l'échappement de chaîne en C #.
la source
string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
Cela fonctionnera, ou les exemples précédents le seront aussi. @ "..." signifie traiter littéralement tout ce qui se trouve entre les guillemets, vous pouvez donc le faire
@"Hello world"
Pour inclure une nouvelle ligne littérale. Je suis plutôt old school et préfère échapper à "\" avec "\\"
la source