私は自分のフォルダ内にデータを保存するプログラムを持っています。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