我尝试使用Qt在Linux中安装网络驱动器(CIFS)。但它不起作用。还有其他解决方案,没有QProcess吗?
QProcess connectSamba;
QString terminalCommand;
terminalCommand = "mount -t cifs //" + ip + "/folder/ " + mountpath;
connectSamba.start(terminalCommand);
答案 0 :(得分:3)
反而想知道是否有其他解决方案,我认为你应该检查并理解为什么QProcess不适合你。
以这种方式调用QProcess::start将第一个令牌(mount)作为命令,并将以下每个项(以空格分隔)作为参数传递。因此,诸如" //"等令牌和" /文件夹/"不是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解释器,该参数接收来自前一个字符串的命令。