Wie schreibe ich einen umgekehrten Schrägstrich (\) in eine Zeichenfolge?

Ich möchte etwas wie dieses C:\Users\UserName\Documents\Tasks in ein textbox schreiben:

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

Ich bekomme den Fehler:

Unbekannte Escape-Sequenz.

Wie schreibe ich einen Backslash in eine Zeichenfolge?

   

Der umgekehrte Schrägstrich ( "\" ) ist ein spezielles Escape-Zeichen, das andere Sonderzeichen wie neue Zeilen ( \n ), Tabulatoren ( \t ) oder Anführungszeichen ( \" ) angibt. Wenn Sie einen umgekehrten Schrägstrich einfügen möchten Sie benötigen zwei umgekehrte Schrägstriche oder verwenden den @ verbatim-String: "\\Tasks" oder @"\Tasks" .

Lesen Sie die MSDN-Dokumentation / C # -Spezifikation, in der die Zeichen beschrieben werden, die mit dem Backslash-Zeichen und der Verwendung des Woratim-String-Literals maskiert werden.

Im Allgemeinen bevorzugen die meisten C # .NET-Entwickler die Verwendung der @ verbatim-Zeichenfolgen beim Erstellen von Datei- / Ordnerpfaden, da sie nicht ständig doppelte Backslashes schreiben müssen und sie den Pfad direkt kopieren / einfügen können Sie haben die Angewohnheit, das Gleiche zu tun.


Alles in allem würde ich in diesem Fall empfehlen, die Path.Combine Methode wie in @ lordkains Antwort zu verwenden, da Sie sich dann keine Gedanken darüber machen müssen, ob Backslashes bereits in den Pfaden enthalten sind und die Schrägstriche versehentlich verdoppelt werden oder sie ganz wegzulassen, wenn Teile von Pfaden kombiniert werden.

Um den Backslash zu umgehen, benutze einfach 2 davon, wie folgt: \\

Wenn Sie anderen Dingen entkommen wollen, kann dies hilfreich sein. .

Es gibt eine spezielle function für diese Path.Combine ()

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

Die vorherige Antwort ist korrekt, aber in diesem speziellen Fall würde ich die System.IO.Path.Combine- Methode empfehlen.

Sie können weitere Details hier finden: http://msdn.microsoft.com/en-us/library/fyy7a5kt.aspx

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

Setzen Sie einen doppelten Backslash anstelle eines einzelnen Backslashs …

Verlassen Sie einfach das "\" mit + "\\Tasks" oder verwenden Sie eine wörtliche Zeichenfolge wie @"\Tasks"

Obwohl dieser Beitrag ziemlich alt ist, habe ich etwas versucht, das für meinen Fall funktioniert hat.

Ich wollte eine String-Variable mit dem folgenden Wert erstellen:

 21541_12_1_13\":null 

Also war mein Ansatz so:

  • Erstellen Sie die Zeichenfolge mit Verbatim

    Zeichenfolge Teilzeichenfolge = @ “21541_12_1_13 \” “: null”;

  • und entfernen Sie dann die unerwünschten Backslashes mithilfe der function “Entfernen”

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

Ich hoffe, das hilft. Prost