我必须构建一个小对话框,创建一个文件夹的符号链接。
在Windows中我会使用mklink / D命令。
是否有可能在Qt中创建此类链接?我只看到QFile在文件之间创建链接,他们需要以.lnk结尾(http://qt-project.org/doc/qt-4.8/qfile.html#link) 另一方面,QDir没有提供任何东西。
有什么建议吗?
祝你好运, 理查德
答案 0 :(得分:5)
是否有可能在Qt中创建此类链接?
是的,它是,但仅限于Unix。
不幸的是,QFile不支持Windows,甚至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
答案 1 :(得分:1)
再次查看文档。除了QFile::link()之外,什么都可以在Winddows上创建一个快捷方式。因此,您需要使用mklink执行QProcess::execute()命令。