web-dev-qa-db-ja.com

QString replace()を使用して「/」を「\\」に置き換える方法は?

誰かがフォローを手伝ってもらえますか?特定のファイルのファイルパスが格納されたQStringがあるとし、そこから/(スラッシュ)を\\(二重円記号)に置き換えたいと思います。

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

ただし、\の代わりに\\を1つだけ配置します。

置換前の文字列:D:/myfiles/abc.Zip

置換後の文字列:D:\myfiles\abc.Zip

予期される文字列:D:\\myfiles\\abc.Zip

13
Varun Chitre

使用する必要があります:

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

コンパイラは、文字列のエスケープ文字として\を使用するため(\t\n\rなど)、\\は実際には\に変換されます。 2つの円記号が必要な場合は、4つから始める必要があります。

26
paxdiablo

パスをWindows形式に変換する場合は、単純に QDir :: toNativeSeparators() :を使用できます。

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