如何在字符串中写反斜杠(\)?

时间:2013-08-30 12:16:02

标签: c# string winforms

我想在C:\Users\UserName\Documents\Tasks中编写类似textbox的内容:

txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\Tasks";

我收到错误:

  

无法识别的转义序列。

如何在字符串中写反斜杠?

7 个答案:

答案 0 :(得分:79)

反斜杠("\")字符是一个特殊的转义字符,用于表示其他特殊字符,例如新行(\n),制表符(\t)或引号({ {1}})。如果您想要包含反斜杠字符,则需要两个反斜杠或使用\"逐字字符串:@"\\Tasks"

阅读MSDN documentation/C# Specification,其中讨论了使用反斜杠字符转义的字符以及使用逐字字符串文字。

一般来说,大多数C#.NET开发人员倾向于在构建文件/文件夹路径时使用@"\Tasks"逐字字符串,因为它使他们不必一直编写双反斜杠,他们可以直接复制/粘贴路径,所以我建议你养成做同样的习惯。


所有人都说,在这种情况下,我实际上建议您使用@lordkain's answer中的@实用程序方法,因为您不必担心路径中是否已包含反斜杠当合并部分路径时,意外地将斜线加倍或完全省略它们。

答案 1 :(得分:14)

要逃避反斜杠,只需使用其中的两个,如下所示: \\

If you need to escape other things, this may be helpful.

答案 2 :(得分:4)

为此Path.Combine()

制作了一项特殊功能
var folder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
var fullpath = path.Combine(folder,"Tasks");

答案 3 :(得分:2)

使用+ "\"转义"\\Tasks"或使用@"\Tasks"

等逐字字符串

答案 4 :(得分:2)

之前的答案是正确的,但在这种特殊情况下,我建议使用 System.IO.Path.Combine 方法。

您可以在此处找到更多详细信息: http://msdn.microsoft.com/en-us/library/fyy7a5kt.aspx

答案 5 :(得分:2)

txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\\\Tasks";

使用双反斜杠而不是单反斜杠......

答案 6 :(得分:0)

即使这篇文章很老,我还是尝试了一些适合我的情况的

我想用以下值创建一个字符串变量:

21541_12_1_13\":null

所以我的方法是这样的:

  • 使用逐字记录构建字符串

    string substring = @“ 21541_12_1_13 \”“:null”;

  • ,然后使用“删除”功能删除不需要的反斜杠

    string newsubstring = substring.Remove(13,1);

希望有帮助。 干杯