Qt5 更改当前 运行 可执行文件的软链接
Qt5 Change Softlink of Currently Running Executable
我在 Linux、"red" 和 "green" 上创建了 2 个简单的 Qt5.5 测试应用程序。我在当前目录中设置了一个初始软件 link,如下所示:
gui -> red
我希望能够随时启动 gui 应用程序并让它将软 link 切换到另一个 'color' 应用程序。所以当我 运行 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;
}
问题是 "success" 布尔值总是失败。我想我无法更改当前 运行ning 进程的软 link。我怎样才能做到这一点?
尝试在重新创建之前删除 link:
This function will not overwrite an already existing entity in the
file system; in this case, link() will return false and set error() to
return RenameError.
我在 Linux、"red" 和 "green" 上创建了 2 个简单的 Qt5.5 测试应用程序。我在当前目录中设置了一个初始软件 link,如下所示:
gui -> red
我希望能够随时启动 gui 应用程序并让它将软 link 切换到另一个 'color' 应用程序。所以当我 运行 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;
}
问题是 "success" 布尔值总是失败。我想我无法更改当前 运行ning 进程的软 link。我怎样才能做到这一点?
尝试在重新创建之前删除 link:
This function will not overwrite an already existing entity in the file system; in this case, link() will return false and set error() to return RenameError.