Голямото нещо, което се промени между Windows XP и Windows Vista/7, е въвеждането на UAC, което означава, че потребителите, дори ако са създадени като администратори, нямат рутинно достъп за четене/запис до "важни" местоположения като %programfiles%
(Обикновено C:\Program Files
или C:\Program Files (x86)
) директория. Ето защо вашето приложение работи на Windows XP, а не на Windows Vista.
Трябва да съхраните своите ДАННИ в %programdata%
директория (която обикновено е C:\ProgramData
) ако данните се споделят между потребители на машината или %appdata%
(което обикновено е C:\Users\USERNAME_GOES_HERE\AppData\Roaming
), ако е специфично за даден потребител. Вече няма да срещате проблема да не можете да пишете във файла.
Причината за това е, че съхранявайки данни в инсталационната директория на вашите програми, вие правите грешно нещо . Windows не ви попречи да направите това по-рано, но беше доста широко документирано, че %programfiles%
не беше подходящото място за съхранение на данни.