자체 폴더 내에 데이터를 저장하는 프로그램이 있습니다.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