Russian Qt Forum

Компиляторы и платформы => Windows => Тема начата: OKTA от Сентябрь 12, 2014, 11:46



Название: [ОБРЕЧЕНО] Разрыв шаблонов
Отправлено: OKTA от Сентябрь 12, 2014, 11:46
Тут обнаружил какую-то дикую фишку... Кто-нибудь может объяснить мне поведение?  ;D

Код:
int main(int argc, char *argv[]) {
    //

    QApplication a(argc, argv);
    QString path = QDesktopServices::storageLocation(
                QDesktopServices::ApplicationsLocation);
    QDir dir(path);
    dir.mkdir(path + "/" + "testDir");
    dir.cd("testDir");
    QFile file("D:/test.log");
    file.link(dir.absolutePath() + "/" + "test.lnk");

    return a.exec();
}

Вот код. Крайне простой. Сначала берем path и создаем там папку. Path этот должен быть типа "C:\Users\user\AppData\Roaming\Microsoft\Windows\Start Menu\Programs".
Ладно, ок, папка создалась, можно жить дальше. Но если после этого, мы захотим создать в папке testDir ссылочку на файл, то создастся новая папка testDir уже по другому пути - в "C:\programdata\Microsoft\Windows\Start Menu\Programs" и именно там будет лежать ссылка на файл  ??? Что за  ??? ???
Вопрос в итоге - а как тогда найти этот дикий новый путь?? Кстати, с созданием простых файлов, а не ссылок, все нормально.


Название: Re: Разрыв шаблонов
Отправлено: Bepec от Сентябрь 12, 2014, 11:49
Ооо, ссылочки. Ты вступаешь на скользкий путь :D


Название: Re: Разрыв шаблонов
Отправлено: OKTA от Сентябрь 12, 2014, 11:52
Я буду сильным  ;D


Название: Re: Разрыв шаблонов
Отправлено: Old от Сентябрь 12, 2014, 12:08
Ооо, ссылочки. Ты вступаешь на скользкий путь :D
Ссылочки не причем, в нормальных системах они приносят только пользу.
Дело в придурашенной венде, вот она сейчас исполнит. Да. :)


Название: Re: Разрыв шаблонов
Отправлено: Bepec от Сентябрь 12, 2014, 12:12
Ну я виндузятник, потому "ссылочки" :D


Название: Re: Разрыв шаблонов
Отправлено: OKTA от Сентябрь 12, 2014, 12:13
Это все намеки на то, что я обречен?  ;D


Название: Re: Разрыв шаблонов
Отправлено: Bepec от Сентябрь 12, 2014, 14:41
Я сдался, пытаясь с ними разобраться. Нашёл другие способы.


Название: Re: Разрыв шаблонов
Отправлено: OKTA от Сентябрь 12, 2014, 14:46
Придется пользоватся WinApi.. все обречено..


Название: Re: Разрыв шаблонов
Отправлено: Old от Сентябрь 12, 2014, 15:06
Придется пользоватся WinApi..
Так это оно и исполняет. :)


Название: Re: [ОБРЕЧЕНО] Разрыв шаблонов
Отправлено: OKTA от Сентябрь 12, 2014, 15:24
Погуглил - вроде вытаскивает то, что нужно) Сейчас попробую)


Название: Re: [ОБРЕЧЕНО] Разрыв шаблонов
Отправлено: OKTA от Сентябрь 12, 2014, 16:20
Код:
SHGetFolderPath( NULL, CSIDL_COMMON_PROGRAMS, NULL, 0, name )
Дает то, что нужно  :)