13

任何人都可以帮助关注吗?假设我有一个 QString ,其中存储了某个文件的文件路径,我想用我试过的(双反斜杠)替换它的/(斜杠) :\\

mystring.replace("/","\\");

但它只放一个\而不是\\

替换前的字符串:D:/myfiles/abc.zip

替换后的字符串:D:\myfiles\abc.zip

预期字符串:D:\\myfiles\\abc.zip

4

3 回答 3

29

你需要使用:

mystring.replace("/","\\\\");

编译器\在字符串中用作转义字符(例如\t,\n\r),因此\\实际上变成了\. 如果需要两个反斜杠,则需要从四个开始。

于 2012-08-07T08:29:43.230 回答
27

如果要将路径转换为 ​​Windows 格式,可以简单地使用QDir::toNativeSeparators()

qDebug() << QDir::toNativeSeparators("c:/windows/path"); // Prints "c:\windows\path"
于 2013-04-09T14:18:51.767 回答
-1

1)为什么要替换它们,AFAIR 正斜杠也适用于文件操作(与操作系统无关)。
2)您是否尝试阅读文档 - 例如为什么\\会导致单个反斜杠?

于 2012-08-07T08:31:24.793 回答