如何用'\'替换'/'使用QString替换()?
任何人都可以帮忙跟随?假设我有预存一定文件的文件路径为QString,我想从它与\\
(双反斜线)更换/
(斜杠)我想:如何用''替换'/'使用QString替换()?
mystring.replace("/","\\");
但它只是提出一个\
代替更换前\\
字符串:D:\myfiles\abc.zip
EXPEC:更换后D:/myfiles/abc.zip
字符串泰德字符串:D:\\myfiles\\abc.zip
您需要使用:
mystring.replace("/","\\\\");
编译器使用\
作为字符串转义字符(对于像\t
,\n
或\r
),以便\\
实际上变成\
。如果你需要两个反斜杠,你需要从四个开始。
1)为什么要替换它们,AFAIR正斜杠也可以在文件操作中工作(不管OS如何)。
2)您是否尝试阅读文档 - 例如为什么\\
会导致单个反斜杠?
因为在Android手机中执行adb操作时正斜杠不起作用他们需要用双反斜线代替(即使单反斜杠也不起作用):p – 2012-08-07 08:40:07
您可以阅读paxdiablo在文档中发布的解释,它清楚地描述了使用单个'\\'作为转义字符。每个转义字符都会转义一个字符。 – 2012-08-07 08:45:11
如果你想路径转换为Windows格式,你可以简单地使用QDir::toNativeSeparators():
qDebug() << QDir::toNativeSeparators("c:/windows/path"); // Prints "c:\windows\path"
不能确定,但据我记得一个QFile/QFileInfo愉快地与任何目录分隔 – friendzis 2012-08-07 08:33:18
我很惊讶工作这实际上编译。是不是你用第三个'\\'转义关闭'''?你用什么语言?C++? – CodesInChaos 2012-08-07 08:34:45
但是adb需要'\\':p 我正在制作一个自动adb工具:) – 2012-08-07 08:35:02