2014-01-09 9 views
3

폴더에 대한 심볼릭 링크를 만드는 작은 대화 상자를 만들어야합니다.Qt create 폴더 간 링크

Windows에서 mklink/D 명령을 사용합니다.

Qt에서 이러한 링크를 만들 가능성이 있습니까? 나는 QFile이 파일들 사이에 링크를 생성하는 것을 보았고 그것들은 .lnk (http://qt-project.org/doc/qt-4.8/qfile.html#link) QDir로 끝나야한다는 것을 알았습니다. 반면에 아무것도 제공하지 않습니다.

제안 사항?

안부,

답변

3

Qt에서 이러한 링크를 만들 가능성이 있습니까?

예, 유닉스에서만 가능합니다.

Windows에서는 QFile에서 지원되지 않으며 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 
:

해결 방법은 다음처럼 작성할하는 것

0

리처드는 그냥 문서를 한 번 더 확인. Windchows에 바로 가기를 만드는 QFile::link() 밖에 없습니다. 따라서 mklink 명령을 QProcess::execute()과 함께 실행해야합니다.