Голямото нещо, което се промени между 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% не беше подходящото място за съхранение на данни.