任何人都可以帮助关注吗?假设我有一个 QString ,其中存储了某个文件的文件路径,我想用我试过的(双反斜杠)替换它的/
(斜杠) :\\
mystring.replace("/","\\");
但它只放一个\
而不是\\
替换前的字符串:D:/myfiles/abc.zip
替换后的字符串:D:\myfiles\abc.zip
预期字符串:D:\\myfiles\\abc.zip
任何人都可以帮助关注吗?假设我有一个 QString ,其中存储了某个文件的文件路径,我想用我试过的(双反斜杠)替换它的/
(斜杠) :\\
mystring.replace("/","\\");
但它只放一个\
而不是\\
替换前的字符串:D:/myfiles/abc.zip
替换后的字符串:D:\myfiles\abc.zip
预期字符串:D:\\myfiles\\abc.zip
你需要使用:
mystring.replace("/","\\\\");
编译器\
在字符串中用作转义字符(例如\t
,\n
或\r
),因此\\
实际上变成了\
. 如果需要两个反斜杠,则需要从四个开始。
如果要将路径转换为 Windows 格式,可以简单地使用QDir::toNativeSeparators():
qDebug() << QDir::toNativeSeparators("c:/windows/path"); // Prints "c:\windows\path"
1)为什么要替换它们,AFAIR 正斜杠也适用于文件操作(与操作系统无关)。
2)您是否尝试阅读文档 - 例如为什么\\
会导致单个反斜杠?