繁体   English   中英

使用Qt安装网络驱动器

[英]mount network drives with Qt

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

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

而不是想知道是否有另一种解决方案,我认为你应该检查并理解为什么QProcess不适合你。

以这种方式调用QProcess :: start会将第一个标记(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解释器,该参数接收来自前一个字符串的命令。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM