我有一個程序,它裏面自己的文件夾保存數據。這就是我如何保存數據:一個QFile路徑從Build版本改變部署版本
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
中。是因爲用戶嗎?或者也許管理員權限?
相沖突在哪些文件夾不UAC的行爲嗎? – andseg
我不太記得,但你可以在文件夾權限中看到它。您可以檢查您要寫入的文件夾是否受UAC保護。 –
非常感謝。不僅你告訴我什麼是問題,而且幫助我走向正確的方向:) – andseg