双反斜杠不起作用?

Posted

技术标签:

【中文标题】双反斜杠不起作用?【英文标题】:Double backslash not work? 【发布时间】:2010-10-18 06:24:38 【问题描述】:

有人知道为什么某些 Windows XP 安装不会评估带有双反斜杠的路径吗?

在某些 XP 上发现错误(相同的版本、补丁、未知的更多详细信息)。在大多数情况下一切正常,在某些 PC 上以下不起作用:

如果路径包含两个反斜杠,例如 C:\\test\hello.txt,则使用 RegEnumKeyEx、fopen 等函数查询路径(注册表或文件夹)将失败。

strPath = "\SOFTWARE\Microsoft\Windows\Currentversion\run"    // works

strPath = "\SOFTWARE\Microsoft\Windows\Currentversion\\run"   // doesn't work

是否有一些政策选项或设置会影响它?

欢迎任何帮助, RM

【问题讨论】:

【参考方案1】:

可能完全不相关,但使用 C/C++(以及其他语言)- "c:\\\\test\hello.txt" 可以,但"c:\test\hello.txt" 不行(因为\t 被解析为制表符,所以你得到的名字并不真正存在)。

当两个反斜杠不存在时,是否有可能发生故障,而当它们存在时,事情就正常了?

【讨论】:

不,语法是正确的。我的意思是当语法中有四个反斜杠时它不起作用,导致实际字符串中有两个反斜杠。当有两个反斜杠(导致实际字符串中有一个反斜杠)时,它确实有效【参考方案2】:

你为什么不简单地修改路径在使用前只有一个\?

【讨论】:

这不是我做不到,而是要知道为什么会这样。这没有道理。我过去在很多代码中也使用过它,所以很高兴知道

以上是关于双反斜杠不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

通过 .htaccess 从 URL 中删除双斜杠不起作用

Azure搜索:没有使用斜杠给出正确的结果,并且为“结束”提供的解决方案不起作用

奇怪的字符串结果

在 h2 数据库 sql 脚本中不起作用

为啥单反斜杠变成双反斜杠

目标 C:用单反斜杠替换双反斜杠