Qt5, symbolic link to a folder

2019-07-27 02:07发布

A dupe-ish question of this question, which (possibly) has got an outdated answer, as I can't get it to work in Qt5.

I wish to create a symbolic link to a folder for a result similar to QFile::link(). Given that QDir doesn't have an equivalent function, QProcess (or an external library) seems like the way out if I'm up to snuff. How would this be managed in Qt5?

Big thanks in advance.

2条回答
SAY GOODBYE
2楼-- · 2019-07-27 02:43

I found out that it cannot be done in Qt, so I ended up using the Win32 API instead. Specifically the CreateSymbolicLink() function.

查看更多
够拽才男人
3楼-- · 2019-07-27 02:54

There are shortcuts and hardlinks on Windows. I think mklink refers to hardlinks.

It works for shortcuts:

#include <QCoreApplication>

#include <QFile>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QFile dir("D:\\source-dir");
    bool ok = dir.link("D:\\target-dir.lnk");

    if (ok)
    {
        qDebug() << "yeah!";
        return 0;
    }
    else {
        qDebug() << "Did not work :(";
        return 1;
    }
}

In this case you will find a shortcut in the Explorer but you cannot access the file D:\source-dir\Bitmap.bmp by typing D:\target-dir\Bitmap.bmp

查看更多
登录 后发表回答