Pergunta

Eu tenho que construir uma pequena caixa de diálogo que cria um link simbólico para uma pasta.

No windows eu uso mklink /D de comando.

Existe a possibilidade de criar links em Qt?Só vi QFile criar links entre arquivos e que eles precisam acabar .lnk (http://qt-project.org/doc/qt-4.8/qfile.html#link) QDir, por outro lado, não oferece nada.

Alguma sugestão?

Melhores cumprimentos, Richard

Foi útil?

Solução

Existe a possibilidade de criar links em Qt?

Sim, é, mas apenas no Unix.

Infelizmente, este não é suportada pelo QFile no Windows, nem mesmo por QDir.Na minha opinião, esta seria uma funcionalidade útil para enviar um relatório para o Qt Bug tracker.

A solução alternativa seria escrever algo como isto:

#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

Outras dicas

Apenas verifiquei a documentação mais uma vez.Não há nada além de qfile :: link () que cria um atalhoWinddows.Então, você precisa executar comando mklink com QProcess :: Execute () .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top