我想写这样的事情C:\Users\UserName\Documents\Tasks
在textbox
:
txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\Tasks";
我得到错误:
无法识别的转义序列。
如何在字符串中写反斜杠?
我想写这样的事情C:\Users\UserName\Documents\Tasks
在textbox
:
txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\Tasks";
我得到错误:
无法识别的转义序列。
如何在字符串中写反斜杠?
Answers:
反斜杠("\"
)字符是特殊的转义字符,用于表示其他特殊字符,例如换行(\n
),制表符(\t
)或引号(\"
)。
如果要自己包含反斜杠字符,则需要两个反斜杠或使用@
逐字字符串:
var s = "\\Tasks";
// or
var s = @"\Tasks";
阅读MSDN文档/ C#规范,其中讨论了使用反斜杠字符和逐字字符串文字的使用来转义的字符。
一般而言,大多数C#.NET开发人员@
在构建文件/文件夹路径时倾向于使用逐字字符串,因为它使他们不必一直写双反斜杠,并且可以直接复制/粘贴路径,因此,我建议您养成做同样的习惯。
综上所述,在这种情况下,我实际上建议您使用@lordkain回答中的Path.Combine
实用程序方法,因为那样您就不必担心路径中是否已经包含反斜杠,并且不小心将斜杠加倍或省略了它们。合并部分路径时。
Path.Combine
与操作系统无关,因此该代码可以在* nix和Windows计算机上运行
要逃避反斜杠,只需使用其中的两个,如下所示:
\\
为此Path.Combine()有一个特殊的功能。
var folder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
var fullpath = path.Combine(folder,"Tasks");
先前的答案是正确的,但是在这种特定情况下,我建议使用System.IO.Path.Combine方法。
您可以在这里找到更多详细信息:http : //msdn.microsoft.com/zh-cn/library/fyy7a5kt.aspx