2012-08-07 125 views
10

任何人都可以幫忙跟隨?假設我有預存一定文件的文件路徑爲QString,我想從它與\\(雙反斜線)更換/(斜槓)我想:如何用''替換'/'使用QString替換()?

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

但它只是提出一個\代替更換前\\

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

EXPEC:更換後D:/myfiles/abc.zip

字符串泰德字符串:D:\\myfiles\\abc.zip

+0

不能確定,但​​據我記得一個QFile/QFileInfo愉快地與任何目錄分隔 – friendzis 2012-08-07 08:33:18

+0

我很驚訝工作這實際上編譯。是不是你用第三個'\\'轉義關閉'''?你用什麼語言?C++? – CodesInChaos 2012-08-07 08:34:45

+0

但是adb需要'\\':p 我正在製作一個自動adb工具:) – 2012-08-07 08:35:02

回答

23

您需要使用:

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

編譯器使用\作爲字符串轉義字符(對於像\t\n\r),以便\\實際上變成\。如果你需要兩個反斜槓,你需要從四個開始。

0

1)爲什麼要替換它們,AFAIR正斜槓也可以在文件操作中工作(不管OS如何)。
2)您是否嘗試閱讀文檔 - 例如爲什麼\\會導致單個反斜槓?

+0

因爲在Android手機中執行adb操作時正斜槓不起作用他們需要用雙反斜線代替(即使單反斜槓也不起作用):p – 2012-08-07 08:40:07

+0

您可以閱讀paxdiablo在文檔中發佈的解釋,它清楚地描述了使用單個'\\'作爲轉義字符。每個轉義字符都會轉義一個字符。 – 2012-08-07 08:45:11

18

如果你想路徑轉換爲Windows格式,你可以簡單地使用QDir::toNativeSeparators()

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