【发布时间】:2017-01-09 18:46:00
【问题描述】:
我有一个程序可以将数据保存在它自己的文件夹中。这就是我保存数据的方式:
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。为什么会突然变到这么不同的文件夹?
编辑:通过进行一些测试,我发现问题不在于安装程序,而在于安装它的位置。出于某种原因,当我将程序传递给C:\Program Files (x86) 时,数据总是保存在C:\Users\SOCC\AppData\Local\VirtualStore\Program Files (x86)\SOCC_Pesquisa\config\Values 中。是因为用户吗?还是管理员权限?
【问题讨论】: