有人可以帮忙吗?假设我有一个带有存储某个文件的文件路径的QString,我想用/
替换\\
(斜杠)(双反斜杠)我试过:
mystring.replace("/","\\");
但它只会放一个\
而不是\\
替换前的字符串:D:/myfiles/abc.zip
替换后的字符串:D:\myfiles\abc.zip
预期字符串:D:\\myfiles\\abc.zip
答案 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)您是否尝试阅读文档 - 例如为什么\\
导致单反斜杠?