Как заменить '/' на '\\' с помощью QString replace()?
Может ли кто-нибудь помочь? Предположим, что у меня есть QString с файловым файлом, хранящимся в определенном файле, я хочу заменить /
(косые черты) на него \\
(двойные обратные косые черты), которые я пробовал:
mystring.replace("/","\\");
Но он ставит только \
вместо \\
Строка перед заменой: D:/myfiles/abc.zip
Строка после замены: D:\myfiles\abc.zip
Ожидаемая строка: D:\\myfiles\\abc.zip
Ответы
Ответ 1
Вам нужно использовать:
mystring.replace("/","\\\\");
Компилятор использует \
как escape-символ в строках (для таких вещей, как \t
, \n
или \r
), так что \\
фактически превращается в \
. Если вам нужны две обратные косые черты, вам нужно начать с четырех.
Ответ 2
Если вы хотите преобразовать пути в формат Windows, вы можете просто использовать QDir:: toNativeSeparators():
qDebug() << QDir::toNativeSeparators("c:/windows/path"); // Prints "c:\windows\path"
Ответ 3
1) Почему вы хотите их заменить, AFAIR сперва работает в файловых операциях (независимо от ОС).
2) Пробовали ли вы прочитать документы - например, почему \\
приводит к одному обратному косую черту?