У меня есть программа, которая сохраняет данные внутри собственной папки. Это, как я сохранить данные:Путь QFile меняется с версии сборки для развертывания версии
QString path = "./config/Values/"+Name+"/";
QDir *myDir = new QDir();
myDir->mkpath(path);
path += Name+"_";
path += Date+".txt";
QFile File(path);
QTextStream Out(&File);
Out.setCodec("UTF-8");
if(!File.open(QFile::WriteOnly | QFile::Text))
return;
out << data;
File.close();
Каждый раз, когда я запускаю программу через QT, сохраненные данные идут по пути: C:\Andre\Qt files\build-Pesquisa-Desktop_Qt_5_7_0_MinGW_32bit-Release\release\config\Values
. Я пошлю полный путь ради ясности.
Однако я сделал установщик для этой программы. Программа установлена в C:\Program Files (x86)\SOCC_Pesquisa
. Итак, новый путь должен быть: C:\Program Files (x86)\SOCC_Pesquisa\config\Values
?
Хотя, когда я запускаю программу и проверяю, где были сохранены данные, я получаю этот путь: C:\Users\SOCC\AppData\Local\VirtualStore\Program Files (x86)\SOCC_Pesquisa\config\Values
. Почему это происходит в такой другой папке?
EDIT: Через несколько тестов выяснилось, что проблема не в установщике, а в том месте, где она установлена. По какой-то причине, когда я передаю свою программу на C:\Program Files (x86)
, данные всегда сохраняются в C:\Users\SOCC\AppData\Local\VirtualStore\Program Files (x86)\SOCC_Pesquisa\config\Values
. это из-за пользователя? или, возможно, права администратора?
В каких папках делает акт контроля учетных записей? – andseg
Я действительно не помню, но вы можете увидеть его в разрешениях папки. Вы можете проверить, является ли папка, которую вы хотите записать, защищенной UAC. –
Большое спасибо. Не только ты сказал мне, в чем проблема, но и помог мне в правильном направлении :) – andseg