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

Translate

我想写这样的东西C:\Users\UserName\Documents\Tasks在一个textbox:

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

我得到错误:

无法识别的转义序列。

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

This question and all comments follow the "Attribution Required."

所有的回答

Translate

反斜线("\")字符是特殊的转义字符,用于表示其他特殊字符,例如换行符(\n),标签(\t)或引号(\")。

如果要自己包含反斜杠字符,则需要两个反斜杠或使用@逐字字符串:

var s = "\\Tasks";
// or 
var s = @"\Tasks";

阅读MSDN文档/ C#规范其中讨论了使用反斜杠字符和逐字字符串文字的使用来转义的字符。

通常来讲,大多数C#.NET开发人员都倾向于使用@构建文件/文件夹路径时使用逐字字符串,因为它使它们不必一直写双反斜杠,并且可以直接复制/粘贴路径,因此建议您养成做同样的习惯。


话虽如此,在这种情况下,我实际上建议您使用Path.Combine效用方法如@lordkain的答案这样一来,您就不必担心路径中是否已经包含反斜杠,并且在合并部分路径时会意外地将斜杠加倍或完全省略它们。

来源
Translate

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

如果您需要逃避其他事情,这可能会有所帮助。.

来源
Translate

为此有一个特殊功能Path.Combine()

var folder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
var fullpath = path.Combine(folder,"Tasks");
来源
Translate

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

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

来源
Nil
Translate
txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\\\Tasks";

放双反斜杠而不是单反斜杠...

来源
Translate

逃脱"\"通过使用+"\\Tasks"或使用逐字字符串,例如@"\Tasks"

来源
Translate

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

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

21541_12_1_13\":null

所以我的方法是这样的:

  • 使用逐字构建字符串

    字符串substring = @“ 21541_12_1_13 \”“:null”;

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

    字符串newsubstring = substring.Remove(13,1);

希望能有所帮助。干杯

来源
Leave a Reply
You must be logged in to post a answer.
关于作者