c# - Wie schreibe ich einen Backslash (\) in eine Zeichenfolge?

Translate

Ich möchte so etwas schreibenC:\Users\UserName\Documents\Tasksin einemtextbox:

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

Ich bekomme den Fehler:

Nicht erkannte Escape-Sequenz.

Wie schreibe ich einen Backslash in eine Zeichenfolge?

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

Alle Antworten

Translate

Der Backslash ("\") Zeichen ist ein spezielles Escape-Zeichen, das verwendet wird, um andere Sonderzeichen anzuzeigen, z. B. neue Zeilen (\n), Registerkarten (\t) oder Anführungszeichen (\").

Wenn Sie ein Backslash-Zeichen selbst einfügen möchten, benötigen Sie zwei Backslashes oder verwenden Sie das@wörtliche Zeichenfolge:

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

Lies dasMSDN-Dokumentation / C # -SpezifikationHier werden die Zeichen erläutert, die mit dem Backslash-Zeichen maskiert werden, und die Verwendung des wörtlichen Zeichenfolgenliteral.

AllgemeinDie meisten C # .NET-Entwickler bevorzugen die Verwendung von@wörtliche Zeichenfolgen beim Erstellen von Datei- / Ordnerpfaden, da sie nicht ständig doppelte Backslashes schreiben müssen und den Pfad direkt kopieren / einfügen können. Ich würde daher empfehlen, dass Sie sich angewöhnen, dasselbe zu tun.


Trotzdem würde ich Ihnen in diesem Fall empfehlen, das zu verwendenPath.CombineDienstprogrammmethode wie in@ Lordkains AntwortIn diesem Fall müssen Sie sich keine Gedanken darüber machen, ob Backslashes bereits in den Pfaden enthalten sind, und die Schrägstriche versehentlich verdoppeln oder ganz weglassen, wenn Sie Teile von Pfaden kombinieren.

Quelle
Translate

Verwenden Sie einfach zwei davon, um dem Backslash zu entgehen:\\

Wenn Sie anderen Dingen entkommen müssen, kann dies hilfreich sein..

Quelle
Translate

Hierfür gibt es eine spezielle FunktionPath.Combine ()

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

Die vorherige Antwort ist richtig, aber in diesem speziellen Fall würde ich die Verwendung von empfehlenSystem.IO.Path.CombineMethode.

Weitere Details finden Sie hier:http://msdn.microsoft.com/en-us/library/fyy7a5kt.aspx

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

Setzen Sie einen doppelten Backslash anstelle eines einzelnen Backslashs ...

Quelle
Translate

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

Quelle
Translate

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

Ich wollte eine Stringvariable mit dem folgenden Wert erstellen:

21541_12_1_13\":null

Mein Ansatz war also so:

  • Erstellen Sie den String wörtlich

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

  • und entfernen Sie dann die unerwünschten Backslashes mit der Funktion Entfernen

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

Hoffentlich hilft das. Prost

Quelle
Leave a Reply
You must be logged in to post a answer.
Über den Autor