Qt criar Vínculo entre pastas
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
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 () .