Ich möchte etwas C:\Users\UserName\Documents\Tasks
in eine textbox
schreiben:
txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\Tasks";
Ich bekomme den Fehler:
Nicht erkannte Escape-Sequenz
Wie schreibe ich einen Backslash in eine Zeichenfolge?
Das Backslash-Zeichen ("\"
) ist ein spezielles Escape-Zeichen, das auf andere Sonderzeichen wie neue Zeilen (\n
), Registerkarten (\t
) oder Anführungszeichen (\"
) verweist. Wenn Sie selbst ein Backslash-Zeichen einfügen möchten, benötigen Sie zwei Backslashes oder verwenden Sie die @
-verbatim-Zeichenfolge: "\\Tasks"
oder @"\Tasks"
.
Lesen Sie die MSDN-Dokumentation/C # Specification , in der die Zeichen beschrieben werden, die mit dem Backslash-Zeichen und die Verwendung des wörtlichen Zeichenkettenliteral mit Escapezeichen versehen werden.
Im Allgemeinen sprechen die meisten C # .NET-Entwickler beim Erstellen von Datei-/Ordnerpfaden die Verwendung der @
-verbatim-Zeichenfolgen vor, da sie nicht ständig doppelte Backslashes schreiben müssen und den Pfad direkt kopieren/einfügen können Ich würde vorschlagen, dass Sie sich daran gewöhnen, dasselbe zu tun.
In diesem Fall würde ich wirklich empfehlen, dass Sie die Path.Combine
-Utility-Methode wie in @ lordkain's answer verwenden, da Sie sich keine Gedanken darüber machen müssen, ob bereits Backslashes in den Pfaden enthalten sind und sich versehentlich verdoppeln die Schrägstriche oder ganz weglassen, wenn Teile von Pfaden kombiniert werden.
Um dem Backslash zu entgehen, verwenden Sie einfach zwei davon: \\
Wenn Sie anderen Dingen entkommen müssen, kann dies hilfreich sein. .
Es gibt eine spezielle Funktion für diese Path.Combine ()
var folder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
var fullpath = path.Combine(folder,"Tasks");
Escape einfach den "\"
mit + "\\Tasks"
oder verwende eine verbatim-Zeichenkette wie @"\Tasks"
Die vorherige Antwort ist korrekt, aber in diesem speziellen Fall würde ich empfehlen, die Methode System.IO.Path.Combine zu verwenden.
Weitere Informationen finden Sie hier: 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 ...
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
also war mein Ansatz so:
erstellen Sie den String mit wörtlich
zeichenfolge Teilzeichenfolge = @ "21541_12_1_13 \" ": null";
entfernen Sie dann die unerwünschten umgekehrten Schrägstriche mithilfe der Funktion Entfernen
string newsubstring = substring.Entfernen (13, 1);
Ich hoffe, das hilft