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

1zmg4dgp  于 2022-12-30  发布在  其他
关注(0)|答案(6)|浏览(147)

我想在一个textbox中写一个类似C:\Users\UserName\Documents\Tasks的东西:

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

我得到错误:
无法识别的转义序列。
如何在字符串中写入反斜杠?

643ylb08

643ylb081#

反斜杠("\")字符是一种特殊的转义字符,用于指示其他特殊字符,如换行符(\n)、制表符(\t)或引号(\")。
如果要包含反斜杠字符本身,则需要两个反斜杠或使用@逐字字符串:

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

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

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

总之,在这种情况下,我实际上建议您使用@lordkain的答案中的Path.Combine实用程序方法,因为这样您就不必担心反斜杠是否已经包含在路径中,以及在组合路径的各个部分时意外地将斜杠重叠或完全忽略它们。

wi3ka0sx

wi3ka0sx2#

要转义反斜杠,只需使用其中的两个,如下所示:第一个月
If you need to escape other things, this may be helpful..

e5nszbig

e5nszbig3#

Path.Combine()创建了一个特殊函数

var folder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
var fullpath = path.Combine(folder,"Tasks");
8mmmxcuj

8mmmxcuj4#

只需使用+ "\\Tasks"转义"\",或者使用像@"\Tasks"这样的逐字字符串

t5zmwmid

t5zmwmid5#

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

用双反斜杠代替单反斜杠...

w80xi6nr

w80xi6nr6#

尽管这个帖子很老了,我还是尝试了一些对我的情况有效的东西。
我想创建一个字符串变量,其值如下:

21541_12_1_13\":null

所以我方法是这样的:

  • 使用逐字生成字符串

字符串子字符串= @“21541_12_1_13”":空”;

  • 然后使用Remove函数删除不需要的反斜杠

字符串newsubstring =子字符串.删除(13,1);
希望有帮助。干杯

相关问题