Главное, что изменилось между Windows XP и Windows Vista / 7, это введение UAC, которое означает, что пользователи, даже если они созданы как администраторы, обычно не имеют доступа для чтения / записи к «важным» местам, таким как * Каталог 1001 * (обычно C:\Program Files
или C:\Program Files (x86)
). Вот почему ваше приложение работает в Windows XP, а не в Windows Vista.
Вам необходимо хранить ДАННЫЕ в каталоге %programdata%
(обычно C:\ProgramData
), если данные передаются между пользователями на компьютере, или %appdata%
(обычно C:\Users\USERNAME_GOES_HERE\AppData\Roaming
) если это характерно для данного пользователя. Теперь вы больше не будете сталкиваться с проблемой невозможности записи в файл.
Причина этого в том, что , сохраняя данные в каталоге установки ваших программ, вы совершали неправильные действия . Windows не помешала вам сделать это ранее, но было довольно широко задокументировано, что %programfiles%
не было подходящим местом для хранения данных.