2015-05-16 2 views
0

Одинокий вопрос this question, который (возможно) получил устаревший ответ, поскольку я не могу заставить его работать в Qt5.Qt5, символическая ссылка на папку

Я хочу создать символическую ссылку на папку для результата, подобного QFile::link(). Учитывая, что QDir не имеет эквивалентной функции, QProcess (или внешняя библиотека) кажется выходным, если я собираюсь понюхать. Как это будет управляться в Qt5?

Большое спасибо заранее.

+0

Что именно вы подразумеваете под «символической ссылкой» здесь? Windows поддерживает Unix-подобные жесткие и символические ссылки, но на практике эти функции редко используются. Я не верю, что Qt поддерживает, но вы всегда можете напрямую использовать Win32 API. – MrEricSir

+0

В итоге я использовал API Win32. Сначала я это имел в виду, но сначала мне было сложно понять msdn. – Tmplt

ответ

0

я узнал, что это не может быть сделано в Qt, поэтому в итоге я использовал API Win32. В частности, CreateSymbolicLink()function.

0

В Windows есть ярлыки и жесткие ссылки. Я думаю, mklink относится к hardlinks.

Он работает для ярлыков:

#include <QCoreApplication> 

#include <QFile> 
#include <QDebug> 

int main(int argc, char *argv[]) 
{ 
    QCoreApplication a(argc, argv); 

    QFile dir("D:\\source-dir"); 
    bool ok = dir.link("D:\\target-dir.lnk"); 

    if (ok) 
    { 
     qDebug() << "yeah!"; 
     return 0; 
    } 
    else { 
     qDebug() << "Did not work :("; 
     return 1; 
    } 
} 

В этом случае вы найдете ярлык в Проводнике, но вы не можете получить доступ к файлу D:\source-dir\Bitmap.bmp, набрав D:\target-dir\Bitmap.bmp

Смежные вопросы