Подтвердить что ты не робот

Как заменить '/' на '\\' с помощью QString replace()?

Может ли кто-нибудь помочь? Предположим, что у меня есть QString с файловым файлом, хранящимся в определенном файле, я хочу заменить / (косые черты) на него \\ (двойные обратные косые черты), которые я пробовал:

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

Но он ставит только \ вместо \\

Строка перед заменой: D:/myfiles/abc.zip

Строка после замены: D:\myfiles\abc.zip

Ожидаемая строка: D:\\myfiles\\abc.zip

4b9b3361

Ответ 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) Пробовали ли вы прочитать документы - например, почему \\ приводит к одному обратному косую черту?