C# 将\\替换为\失败

C# 将\\替换为\失败,c#,string,C#,String,这是我从sql server获得的路径 但我的应用程序使用单斜杠,所以我尝试使用 string DownloadDirectoryPath = @"C:\\Program Files\\companyname\\productname\\username\\0\\2012081617085746" 但这不起作用,我得到了相同的字符串。 有什么建议吗 请注意: 上面的值是我在“监视”窗口中看到的值,在DownloadDirectoryPath的值前面没有@,因此它实际上没有任何\\,只有 执行c

这是我从sql server获得的路径 但我的应用程序使用单斜杠,所以我尝试使用

string DownloadDirectoryPath = @"C:\\Program Files\\companyname\\productname\\username\\0\\2012081617085746"
但这不起作用,我得到了相同的字符串。 有什么建议吗

请注意:


上面的值是我在“监视”窗口中看到的值,在DownloadDirectoryPath的值前面没有@,因此它实际上没有任何\\,只有

执行console.WriteLineDownloadDirectoryPath以检查其中真正包含的内容

编辑OP更新的问题:


如果在调试时将鼠标悬停在包含它的变量上或使用“监视”窗口,则VS将显示一个\as\,以消除它与转义字符之间的歧义。将其写入控制台、文件或其他输出以检查其真实内容。

您的DownloadDirectoryPath值前面没有@,因此它实际上没有任何\\,只有

执行console.WriteLineDownloadDirectoryPath以检查其中真正包含的内容

编辑OP更新的问题:

如果在调试时将鼠标悬停在包含它的变量上或使用“监视”窗口,则VS将显示一个\as\,以消除它与转义字符之间的歧义。将它写入控制台、文件或其他输出,以检查它到底是什么。

命令编译器逐字读取字符串。编写用于解释字符串的SQL的人员。为了处理您所拥有的内容,请删除@

string DownloadDirectoryPath=C:\\Program Files\\companyname\\productname\\username\\0\\2012081617085746

还请注意,当您在调试器监视窗口中看到逐字字符串时,您将看到编译器添加的转义字符,而不是源代码中的逐字版本

该@命令编译器逐字读取字符串。编写用于解释字符串的SQL的人员。为了处理您所拥有的内容,请删除@

string DownloadDirectoryPath=C:\\Program Files\\companyname\\productname\\username\\0\\2012081617085746


还请注意,当您在调试器监视窗口中看到逐字字符串时,您将看到编译器添加的转义字符,而不是源代码中的逐字版本

如果在值上执行console.writeline/similor,检查示例是否确实显示\\?如果在值上执行console.writeline/similor,检查示例是否确实显示\\?是否确实获得了双反斜杠字符串?你怎么知道的?例如,调试器将\b显示为\\b。试着在屏幕上打印字符串,看看你得到了什么。我看不到另一种可能性,因为您的代码是正确的。您确定得到的是双反斜杠字符串吗?你怎么知道的?例如,调试器将\b显示为\\b。试着在屏幕上打印字符串,看看你得到了什么。我看不到另一种可能性,因为你的代码是正确的。
DownloadDirectoryPath= DownloadDirectoryPath.Replace(@"\\", @"\");