简体   繁体   中英

Qt5, symbolic link to a folder

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.

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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