Как открыть файл на сервере, используя программу по умолчанию в Qt?

Все, что я читаю, говорит о том, что QDesktopServices::openUrl это независимый от платформы способ открыть документ с помощью программы по умолчанию, и он прекрасно работает почти все время.

Я говорю почти, потому что это, кажется, всегда терпит неудачу, если я передаю ему сетевой путь. Прочесывая источник, я вижу, что ShellExecute возвращает код ошибки 2.

Пример:

QUrl localpath = QUrl::fromLocalFile("C:/temp/myfile.txt");
QUrl networkpath = QUrl::fromLocalFile("//192.168.0.5/my folder/myfile.txt");

QDesktopServices::openUrl(localpath);     //works fine
QDesktopServices::openUrl(networkpath);   //always fails

Есть ли способ, которым я могу очистить сетевой путь, чтобы открыть правильно? Я использую Qt 4.8 в Windows. Переключение прямой косой черты на обратную косую черту не помогает.

0

Решение

Вы должны использовать QUrl :: TolerantMode, если у вас есть пробелы в вашем пути.
попробуй это:

QDesktopServices::openUrl(QUrl("file:////192.168.0.5/my folder/myfile.txt", QUrl::TolerantMode));
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]