C++ 使用Qt安装网络驱动器

C++ 使用Qt安装网络驱动器,c++,qt,qt4,C++,Qt,Qt4,我尝试在Linux中使用Qt安装网络驱动器(CIFS)。但它不起作用。还有没有其他解决方案,没有QProcess QProcess connectSamba; QString terminalCommand; terminalCommand = "mount -t cifs //" + ip + "/folder/ " + mountpath; connectSamba.start(terminalCommand); 不知道是否还有其他解决方案,我认为您应该检查并理解为

我尝试在Linux中使用Qt安装网络驱动器(CIFS)。但它不起作用。还有没有其他解决方案,没有QProcess

QProcess connectSamba;
    QString terminalCommand;
    terminalCommand = "mount -t cifs //" + ip + "/folder/ " + mountpath;
    connectSamba.start(terminalCommand);

不知道是否还有其他解决方案,我认为您应该检查并理解为什么QProcess不适合您

以这种方式调用将以第一个令牌(mount)作为命令,并将以下每一项(用空格分隔)作为参数传递。因此,诸如“/”和“/folder/”之类的标记不是mount命令的有效参数

您可以通过执行以下操作来使用QProcess:-

QProcess connectSamba;

QString mountPath = "//" + ip + "/folder/ " + mountpath;
QString terminalArgs = QString("-c \"mount -t cifs %1\"").arg(mountPath);
connectSamba.start("/bin/bash", terminalArgs);
connectSamba.waitForFinished();

请注意,终端参数用引号括起来,以确保只传递一个参数,我们使用-c参数调用bash解释器,该参数从前面的字符串中获取命令。

非常感谢。这对我有帮助!但现在我有第二个问题。read“connectSamba.readAllStandardError()”-函数表示“mount:只有root用户可以使用”--types”选项-由于这是一个不同的问题,请您将此标记为已回答,然后重新开始;它使其他人更容易找到相同或类似问题的答案。