c# - Comment écrire une barre oblique inverse (\) dans une chaîne?

Translate

Je veux écrire quelque chose comme çaC:\Users\UserName\Documents\Tasksdans untextbox:

txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\Tasks";

J'obtiens l'erreur:

Séquence d'échappement non reconnue.

Comment écrire une barre oblique inverse dans une chaîne?

This question and all comments follow the "Attribution Required."

Toutes les réponses

Translate

La barre oblique inverse ("\") est un caractère d'échappement spécial utilisé pour indiquer d'autres caractères spéciaux tels que les nouvelles lignes (\n), onglets (\t) ou des guillemets (\").

Si vous souhaitez inclure une barre oblique inverse elle-même, vous avez besoin de deux barres obliques inverses ou utilisez le@chaîne verbatim:

var s = "\\Tasks";
// or 
var s = @"\Tasks";

Lis leDocumentation MSDN / Spécification C #qui traite des caractères échappés à l'aide de la barre oblique inverse et de l'utilisation du littéral de chaîne verbatim.

Généralementparlant, la plupart des développeurs C # .NET ont tendance à préférer@des chaînes textuelles lors de la construction de chemins de fichiers / dossiers, car cela leur évite d'avoir à écrire des doubles barres obliques inverses tout le temps et ils peuvent directement copier / coller le chemin, je vous suggère donc de prendre l'habitude de faire de même.


Cela dit, dans ce cas, je vous recommande en fait d'utiliser lePath.Combineméthode d'utilité comme dans@ réponse de lordkaincomme alors, vous n'avez pas à vous soucier de savoir si des contre-obliques sont déjà incluses dans les chemins et de doubler accidentellement les barres obliques ou de les omettre complètement lors de la combinaison de parties de chemins.

La source
Translate

Pour échapper à la barre oblique inverse, utilisez simplement 2 d'entre eux, comme ceci:\\

Si vous avez besoin d'échapper à d'autres choses, cela peut être utile..

La source
Translate

Il y a une fonction spéciale faite pour celaChemin.Combiner ()

var folder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
var fullpath = path.Combine(folder,"Tasks");
La source
Translate

La réponse précédente est correcte mais dans ce cas précis, je recommanderais d'utiliser leSystem.IO.Path.Combineméthode.

Vous pouvez trouver plus de détails ici:http://msdn.microsoft.com/en-us/library/fyy7a5kt.aspx

La source
Nil
Translate
txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\\\Tasks";

Mettez une double barre oblique inverse au lieu d'une seule barre oblique inverse ...

La source
Translate

Juste échapper au"\"en utilisant +"\\Tasks"ou utilisez une chaîne textuelle comme@"\Tasks"

La source
Translate

même si ce post est assez ancien, j'ai essayé quelque chose qui a fonctionné pour mon cas.

Je voulais créer une variable de chaîne avec la valeur ci-dessous:

21541_12_1_13\":null

donc mon approche était comme ça:

  • construire la chaîne en utilisant verbatim

    string substring = @ "21541_12_1_13 \" ": null";

  • puis supprimez les contre-obliques indésirables à l'aide de la fonction Supprimer

    string newsubstring = substring.Remove (13, 1);

J'espère que ça t'as aidé. À votre santé

La source
Leave a Reply
You must be logged in to post a answer.
A propos de l'auteur