Qt5,到文件夹的符号链接

Posted

技术标签:

【中文标题】Qt5,到文件夹的符号链接【英文标题】:Qt5, symbolic link to a folder 【发布时间】:2015-05-16 01:19:42 【问题描述】:

this question 的一个愚蠢的问题,(可能)有一个过时的答案,因为我无法让它在 Qt5 中工作。

我希望创建一个指向文件夹的符号链接以获得类似于QFile::link() 的结果。鉴于QDir 没有等效的功能,QProcess(或外部库)似乎是我的出路。在 Qt5 中如何管理?

非常感谢。

【问题讨论】:

这里的“符号链接”到底是什么意思? Windows 支持类 Unix 的硬链接和符号链接,但实际上这些功能很少使用。我不相信 Qt 支持,但你总是可以直接使用 Win32 API。 我最终使用了 Win32 API。起初我是这么想的,但一开始我对 msdn 的理解有点困难。 【参考方案1】:

Windows 上有快捷方式和硬链接。我认为mklink 指的是硬链接。

它适用于快捷方式:

#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;
    

在这种情况下,您会在资源管理器中找到一个快捷方式,但您无法通过键入 D:\target-dir\Bitmap.bmp 访问文件 D:\source-dir\Bitmap.bmp

【讨论】:

【参考方案2】:

我发现它不能在 Qt 中完成,所以我最终改用 Win32 API。特别是CreateSymbolicLink()function。

【讨论】:

以上是关于Qt5,到文件夹的符号链接的主要内容,如果未能解决你的问题,请参考以下文章

静态链接

将 QCharts 与 Visual Studio 2015 一起使用时未解析的外部符号

备份到 S3:符号链接

linux 静态链接和动态链接

通过 rpmbuild 打包符号链接?

Vagrant+Chef 将公用文件夹符号链接到另一个文件夹