Qt создать ссылку между папками
Я должен построить небольшой диалог, который создает символическую ссылку на папку.
В Windows я бы использовал команду mklink /D.
Есть ли возможность создавать такие ссылки в Qt? Я видел только, как QFile создает ссылки между файлами, и что они должны заканчиваться на.lnk ( http://qt-project.org/doc/qt-4.8/qfile.html) QDir, с другой стороны, ничего не предоставляет,
Какие-либо предложения?
С наилучшими пожеланиями, Ричард
2 ответа
Есть ли возможность создавать такие ссылки в Qt?
Да, это так, но только в Unix.
К сожалению, это не поддерживается QFile в Windows, даже QDir. На мой взгляд, это была бы полезная функция для отправки отчета на трекере Qt Bug.
Обходной путь должен был бы написать что-то вроде этого:
#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
Просто проверил документацию еще раз. Нет ничего, кроме QFile::link(), который создает ярлык для Winddows. Итак, вам нужно выполнить команду mklink с QProcess:: execute ().