Det stora som förändrades mellan Windows XP och Windows Vista/7 är introduktionen av UAC som innebär att användare, även om de skapats som administratörer, inte rutinmässigt har läs-/skrivåtkomst till "viktiga" platser som %programfiles%
(Vanligtvis C:\Program Files
eller C:\Program Files (x86)
) katalog. Det är därför din applikation fungerar på Windows XP och inte på Windows Vista.
Du måste lagra dina DATA i %programdata%
katalog (som vanligtvis är C:\ProgramData
) om data delas mellan användare på maskinen eller %appdata%
(vilket vanligtvis är C:\Users\USERNAME_GOES_HERE\AppData\Roaming
) om det är specifikt för en viss användare. Du kommer nu inte längre att stöta på problemet med att inte kunna skriva till filen.
Anledningen till detta är att genom att lagra data i din programinstallationskatalog du gjorde fel sak . Windows hindrade dig inte från att göra detta tidigare, men det var ganska allmänt dokumenterat att %programfiles%
var inte rätt plats att lagra data på.