如何使用Qt中的默认程序在服务器上打开文件?

时间:2016-02-02 21:25:30

标签: c++ qt qt4 qdesktopservices

我读到的所有内容都表明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

有没有办法清理正确打开的网络路径?我在Windows上运行Qt 4.8。将正斜杠切换为反斜杠无济于事。

1 个答案:

答案 0 :(得分:0)

如果路径中有空格,则应使用QUrl :: TolerantMode。 试试这个:

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