如何在string中写一个反斜杠(\)?
我想在textbox
写下类似于C:\Users\UserName\Documents\Tasks
的东西:
txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\Tasks";
我得到的错误:
无法识别的转义序列。
如何在string中写一个反斜杠?
反斜杠( "\"
)字符是一个特殊的转义字符,用于表示其他特殊字符,例如新行( \n
),制表符( \t
)或引号( \"
)。如果要包含反斜线字符本身,你需要两个反斜杠或使用@
verbatimstring: "\\Tasks"
或@"\Tasks"
。
请阅读MSDN文档/ C#规范 ,其中讨论了使用反斜杠字符和逐字string文字使用的转义字符。
一般来说 ,大多数C#.NET开发人员倾向于在构build文件/文件夹path时使用@
逐字string,因为它使他们不必始终写双反斜杠,并且可以直接复制/粘贴path,所以我build议你养成这样做的习惯。
这就是说,在这种情况下,我实际上build议你使用Path.Combine
实用程序方法,就像在@ lordkain的答案中一样,那么你不必担心反斜杠是否已经包含在path中,并意外地将斜杠加倍或者在组合部分path时完全省略它们。
为了避免反斜杠,只需使用其中的2个,如下所示: \\
如果你需要逃避其他的事情,这可能会有所帮助。 。
这个Path.Combine()有一个特殊的function,
var folder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); var fullpath = path.Combine(folder,"Tasks");
以前的答案是正确的,但在这种特殊情况下,我会build议使用System.IO.Path.Combine方法。
你可以在这里find更多的细节: http : //msdn.microsoft.com/en-us/library/fyy7a5kt.aspx
txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\\\Tasks";
放置一个双反斜杠而不是单个反斜杠
只需使用+“\ Tasks”就可以跳过“\”,或者使用一个逐字串如@“\ Tasks”