Qt5更改当前正在运行的可执行文件的软链接

时间:2015-11-20 15:27:25

标签: linux qt qt5 symlink

我在Linux上创建了2个简单的Qt5.5测试应用程序," red"和"绿色"。我在当前目录中设置了一个初始软链接,如下所示:

gui -> red

我希望能够随时启动gui应用程序,并将软链接切换到另一种颜色'应用程序。因此,当我运行gui并且它指向红色时,下次我运行gui时它将指向绿色。

执行此操作的红色应用程序代码如下所示:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent)
{
    // Get the current path
    QString cwd = QDir::currentPath();
    qDebug() << cwd + "/green";
    bool success = QFile::link(cwd + "/green",cwd + "/gui");
    qDebug() << "Was successful: " << success;
}

执行此操作的绿色应用程序代码如下所示:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent)
{
    // Get the current path
    QString cwd = QDir::currentPath();
    qDebug() << cwd + "/red";
    bool success = QFile::link(cwd + "/red",cwd + "/gui");
    qDebug() << "Was successful: " << success;
}

问题在于&#34;成功&#34;布尔总是失败。我想我无法改变当前正在运行的进程的软链接。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

尝试在重新创建链接之前删除链接:

  

此功能不会覆盖中的现有实体   文件系统;在这种情况下,link()将返回false并将error()设置为   返回RenameError。

QFile::link()