【问题标题】:Qt create Link between foldersQt 创建文件夹之间的链接
【发布时间】:2014-01-09 03:18:56
【问题描述】:

我必须构建一个小对话框来创建指向文件夹的符号链接。

在 windows 中我会使用 mklink /D 命令。

有没有可能在 Qt 中创建这样的链接?我只看到 QFile 在文件之间创建链接并且它们需要以 .lnk (http://qt-project.org/doc/qt-4.8/qfile.html#link) 结尾 另一方面,QDir 不提供任何东西。

有什么建议吗?

最好的问候, 理查德

【问题讨论】:

    标签: c++ qt qprocess qtcore qfile


    【解决方案1】:

    有没有可能在 Qt 中创建这样的链接?

    是的,但仅限于 Unix。

    不幸的是,Windows 上的 QFile 不支持此功能,甚至 QDir 也不支持。在我看来,这将是一个有用的功能,可以在Qt Bug tracker 上提交报告。

    解决方法是这样写:

    #ifdef Q_OS_UNIX
        QFile::link(sourceDir.absolutePath(), destDir.absolutePath());
    #elif Q_OS_WIN
        QProcess process;
        process.start("mklink /D");
    
        // Wait for it to start
        if(!process.waitForStarted())
            return 0;
    
        bool retval = false;
        QByteArray buffer;
        while ((retval = process.waitForFinished()));
            buffer.append(process.readAll());
    
        if (!retval) {
            qDebug() << "Process error:" << process.errorString();
            qDebug() << "Output:" << buffer;
            return 1;
        }
    #endif
    

    【讨论】:

      【解决方案2】:

      刚刚又检查了一次文档。除了QFile::link() 之外,什么都没有,它在 Windows 上创建了一个快捷方式。因此,您需要使用QProcess::execute() 执行mklink 命令。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-03-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多