Ich möchte so etwas schreiben C:\Users\UserName\Documents\Tasks
in textbox
:
txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\Tasks";
Ich bekomme den Fehler:
Nicht erkannte Escape-Sequenz.
Wie schreibe ich einen Backslash in eine Zeichenfolge?
Antworten:
Das Backslash (
"\"
) -Zeichen ist ein spezielles Escape-Zeichen, das andere Sonderzeichen wie neue Zeilen (\n
), Tabulatoren (\t
) oder Anführungszeichen (\"
) kennzeichnet .Wenn Sie ein Backslash-Zeichen selbst einfügen möchten, benötigen Sie zwei Backslashes oder verwenden Sie die
@
wörtliche Zeichenfolge:var s = "\\Tasks"; // or var s = @"\Tasks";
Lesen Sie die MSDN-Dokumentation / C # -Spezifikation, in der die Zeichen erläutert werden, die mit dem Backslash-Zeichen und der Verwendung des wörtlichen Zeichenfolgenliteral maskiert werden.
Im Allgemeinen bevorzugen die meisten C # .NET-Entwickler die Verwendung der
@
wörtlichen 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 Ihnen daher empfehlen Gewöhnen Sie sich an, dasselbe zu tun.In diesem Fall würde ich Ihnen jedoch empfehlen, die
Path.Combine
Dienstprogrammmethode wie in der Antwort von @ lordkain 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 verdoppeln oder weglassen Insgesamt beim Kombinieren von Teilen von Pfaden.quelle
Path.Combine
betriebssystemunabhängig, sodass dieser Code sowohl auf * nix- als auch auf Windows-Computern ausgeführt werden kannVerwenden Sie einfach zwei davon, um dem Backslash zu entgehen:
\\
Wenn Sie anderen Dingen entkommen müssen, kann dies hilfreich sein. .
quelle
Für diesen Path.Combine () wurde eine spezielle Funktion erstellt.
var folder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); var fullpath = path.Combine(folder,"Tasks");
quelle
Die vorherige Antwort ist richtig, aber in diesem speziellen Fall würde ich die Verwendung von System.IO.Path.Combine empfehlen Methode .
Weitere Informationen finden Sie hier: http://msdn.microsoft.com/en-us/library/fyy7a5kt.aspx
quelle
Entfliehen Sie einfach
"\"
mit +"\\Tasks"
oder verwenden Sie eine wörtliche Zeichenfolge wie@"\Tasks"
quelle
txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\\\Tasks";
Setzen Sie einen doppelten Backslash anstelle eines einzelnen Backslashs ...
quelle
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