如何在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”