如何使用QString replace()将'/'替换为'\\'?

时间:2012-08-07 08:27:18

标签: qt path qt4 cross-platform

有人可以帮忙吗?假设我有一个带有存储某个文件的文件路径的QString,我想用/替换\\(斜杠)(双反斜杠)我试过:

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

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

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

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

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

3 个答案:

答案 0 :(得分:25)

您需要使用:

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

编译器使用\作为字符串中的转义字符(对于\t\n\r这样的内容),以便\\实际上变为\。如果你需要两个反斜杠,你需要从四开始。

答案 1 :(得分:20)

如果要将路径转换为Windows格式,只需使用QDir::toNativeSeparators()

即可
qDebug() << QDir::toNativeSeparators("c:/windows/path"); // Prints "c:\windows\path"

答案 2 :(得分:-1)

1)为什么要更换它们,AFAIR正向斜线也可以在文件操作中工作(无论操作系统如何)。
2)您是否尝试阅读文档 - 例如为什么\\导致单反斜杠?