我想在一个textbox中写一个类似C:\Users\UserName\Documents\Tasks的东西:
textbox
C:\Users\UserName\Documents\Tasks
txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\Tasks";
我得到错误:无法识别的转义序列。如何在字符串中写入反斜杠?
643ylb081#
反斜杠("\")字符是一种特殊的转义字符,用于指示其他特殊字符,如换行符(\n)、制表符(\t)或引号(\")。如果要包含反斜杠字符本身,则需要两个反斜杠或使用@逐字字符串:
"\"
\n
\t
\"
@
var s = "\\Tasks"; // or var s = @"\Tasks";
阅读MSDN documentation/C# Specification,其中讨论了使用反斜杠字符转义的字符和逐字字符串文字的使用。
总之,在这种情况下,我实际上建议您使用@lordkain的答案中的Path.Combine实用程序方法,因为这样您就不必担心反斜杠是否已经包含在路径中,以及在组合路径的各个部分时意外地将斜杠重叠或完全忽略它们。
Path.Combine
wi3ka0sx2#
要转义反斜杠,只需使用其中的两个,如下所示:第一个月If you need to escape other things, this may be helpful..
e5nszbig3#
为Path.Combine()创建了一个特殊函数
var folder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); var fullpath = path.Combine(folder,"Tasks");
8mmmxcuj4#
只需使用+ "\\Tasks"转义"\",或者使用像@"\Tasks"这样的逐字字符串
"\\Tasks"
@"\Tasks"
t5zmwmid5#
txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\\\Tasks";
用双反斜杠代替单反斜杠...
w80xi6nr6#
尽管这个帖子很老了,我还是尝试了一些对我的情况有效的东西。我想创建一个字符串变量,其值如下:
21541_12_1_13\":null
所以我方法是这样的:
字符串子字符串= @“21541_12_1_13”":空”;
字符串newsubstring =子字符串.删除(13,1);希望有帮助。干杯
6条答案
按热度按时间643ylb081#
反斜杠(
"\"
)字符是一种特殊的转义字符,用于指示其他特殊字符,如换行符(\n
)、制表符(\t
)或引号(\"
)。如果要包含反斜杠字符本身,则需要两个反斜杠或使用
@
逐字字符串:阅读MSDN documentation/C# Specification,其中讨论了使用反斜杠字符转义的字符和逐字字符串文字的使用。
@
逐字字符串,因为这样可以使他们不必一直编写双反斜杠,并且可以直接复制/粘贴路径,所以我建议您养成这样做的习惯。总之,在这种情况下,我实际上建议您使用@lordkain的答案中的
Path.Combine
实用程序方法,因为这样您就不必担心反斜杠是否已经包含在路径中,以及在组合路径的各个部分时意外地将斜杠重叠或完全忽略它们。wi3ka0sx2#
要转义反斜杠,只需使用其中的两个,如下所示:第一个月
If you need to escape other things, this may be helpful..
e5nszbig3#
为Path.Combine()创建了一个特殊函数
8mmmxcuj4#
只需使用+
"\\Tasks"
转义"\"
,或者使用像@"\Tasks"
这样的逐字字符串t5zmwmid5#
用双反斜杠代替单反斜杠...
w80xi6nr6#
尽管这个帖子很老了,我还是尝试了一些对我的情况有效的东西。
我想创建一个字符串变量,其值如下:
所以我方法是这样的:
字符串子字符串= @“21541_12_1_13”":空”;
字符串newsubstring =子字符串.删除(13,1);
希望有帮助。干杯