QT+C++开放式网络驱动

QT+C++开放式网络驱动,c++,qt,C++,Qt,我有一个UI,其中有两个按钮: 设置目录-为用户选择目录提供导航对话框 打开目录-打开窗口以设置目录 我下面的代码适用于本地目录,但不适用于网络目录。当我将目录设置为网络路径//my.network.path.com/jon/并尝试打开该目录时,窗口目录不会出现,QT输出日志ShellExecute'//my.network.path.com/jon'失败错误2。QT没有访问网络驱动器的权限吗 QDir mSaveDirectory; void setDirectory() {

我有一个UI,其中有两个按钮:

设置目录-为用户选择目录提供导航对话框 打开目录-打开窗口以设置目录 我下面的代码适用于本地目录,但不适用于网络目录。当我将目录设置为网络路径//my.network.path.com/jon/并尝试打开该目录时,窗口目录不会出现,QT输出日志ShellExecute'//my.network.path.com/jon'失败错误2。QT没有访问网络驱动器的权限吗

QDir mSaveDirectory;    
void setDirectory()
{
    QWidget *widget;
    QString directoryPath = QFileDialog::getExistingDirectory(widget, "Select Directory", "/", QFileDialog::ShowDirsOnly);
    mSaveDirectory.setPath(directoryPath);
}
void openDirectory() const
{
    QUrl url;
    url.setScheme("file");
    url.setPath(mSaveDirectory.absolutePath());
    QDesktopServices::openUrl(url);
}

您正在执行的环境是否有足够的权限访问驱动器?您可能需要以管理员身份启动Qt Creator,或者以具有正确访问它的凭据的用户身份启动Qt Creator。根据Qt文档,QFileDialog::getExistingDirectory的主要区别在于提供给用户选择远程目录的能力。这就是为什么返回类型和dir类型是QUrl。。。这个函数是在Qt5.2中引入的,所以看起来您做得很正确。@kayleeFrye_onDeck我正在使用Visual Studio作为管理员。另外,我可以访问网络驱动器。也许是URL的使用方式?例如,在Ubuntu文档中,Windows文件共享通常通过smb://domain-name/fileshare; 也许Qt也期望如此?这可能完全是在转移注意力。如果Qt在引擎盖下使用sh样式的连接,那么引用以下内容可能会有所帮助:OS和Qt版本?您执行的环境是否有足够的权限访问驱动器?您可能需要以管理员身份启动Qt Creator,或者以具有正确访问它的凭据的用户身份启动Qt Creator。根据Qt文档,QFileDialog::getExistingDirectory的主要区别在于提供给用户选择远程目录的能力。这就是为什么返回类型和dir类型是QUrl。。。这个函数是在Qt5.2中引入的,所以看起来您做得很正确。@kayleeFrye_onDeck我正在使用Visual Studio作为管理员。另外,我可以访问网络驱动器。也许是URL的使用方式?例如,在Ubuntu文档中,Windows文件共享通常通过smb://domain-name/fileshare; 也许Qt也期望如此?这可能完全是在转移注意力。如果Qt在引擎盖下使用sh样式的连接,那么可以参考以下内容:OS和Qt版本?