Wielką rzeczą, która zmieniła się między Windows XP a Windows Vista/7, jest wprowadzenie UAC, co oznacza, że użytkownicy, nawet jeśli są stworzeni jako administratorzy, nie mają rutynowo dostępu do odczytu/zapisu w „ważnych” lokalizacjach, takich jak %programfiles%
(Zazwyczaj C:\Program Files
lub C:\Program Files (x86)
). Dlatego Twoja aplikacja działa w systemie Windows XP, a nie w systemie Windows Vista.
Musisz przechowywać swoje DANE w %programdata%
katalog (zwykle jest to C:\ProgramData
) jeśli dane są udostępniane między użytkownikami na komputerze lub %appdata%
(zwykle jest to C:\Users\USERNAME_GOES_HERE\AppData\Roaming
), jeśli jest specyficzny dla danego użytkownika. Teraz nie będziesz już mieć problemu z brakiem możliwości zapisu do pliku.
Powodem tego jest to, że przechowując dane w katalogu instalacyjnym programów, robiłeś coś złego . Windows nie powstrzymał cię przed zrobieniem tego wcześniej, ale dość szeroko udokumentowano, że %programfiles%
nie było odpowiednim miejscem do przechowywania danych.