Ric*_*ard 3 c++ qt qprocess qfile qtcore
我必须构建一个小对话框,创建一个文件夹的符号链接.
在Windows中我会使用mklink/D命令.
是否有可能在Qt中创建此类链接?我只看到QFile在文件之间创建链接,并且他们需要以.lnk结尾(http://qt-project.org/doc/qt-4.8/qfile.html#link)另一方面QDir没有提供任何内容.
有什么建议?
最好的问候,理查德
是否有可能在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
Run Code Online (Sandbox Code Playgroud)