Met de recente Windows versies (tenminste voor Windows 7 en nieuwer), heeft Microsoft besloten om bestanden in "C:Program Files" of "C:Program Files (x86)" READ ONLY (alleen lezen) te maken ... als je dus een portable applicatie wilt maken lekker klote dus ...
Hoe kunnen we hier om heen werken?
Optie 1 - Schrijf naar de correcte config directory ...
De function GetAppConfigDir(false); is wat we hiervoor nodig hebben en het werkt zo als verwacht ... maar dan met het nadeel dat de data dus NIET in de applicatie directory wordt opgeslagen - en dat kan dus een probleem vormen voor portable applicaties (voor applicaties geven we de parameter "false" mee).
Optie 2 - De juiste toegangsrechten gebruiken ...
Deze methode werkt, maar of het allemaal de juiste methode is weet ik niet:
1 - Maak in de applicatie directory een sub-directory voor data, b.v.:
C:Program Files<your application>data
2 - Klik de directory met rechts aan en ga naar de security instellingen.
Voor de gebruikers groep "Users" voeg je nu "Full Control" toe waardoor iedere gebruiker kan lezen en schrijven naar deze directory.
Voor distributie: zip het hele handeltje met directory en al en bij het uitpakken worden de rechten meegenomen ...