C:\ProgramData
ma ustawienia bezpieczeństwa, które uniemożliwiają zapisanie się tam przez użytkownika standardowego. To nie jest nowe w Windows 8, Windows 7 był taki sam, a równoważny folder na Vista jest również zabezpieczony w ten sposób. Być może twoje środowisko Windows 7 ma wyłączony UAC, lub może zabezpieczyłeś C:\ProgramData
lub C:\ProgramData\MyProgramName
, aby umożliwić dostęp do zapisu dla standardowego użytkownika.
Istnieje kilka podejść do korzystania z tego folderu. Niektóre aplikacje zapisują tam tylko podczas instalacji, podczas gdy proces instalacyjny działa na podwyższonym poziomie. Następnie sama aplikacja, która działa jako użytkownik standardowy, może czytać, ale nigdy nie próbuje pisać.
Innym podejściem jest stworzenie przez instalatora podkatalogu o numerze C:\ProgramData
, który jest zabezpieczony przed dostępem do zapisu dla zwykłego użytkownika lub innego użytkownika/grupy, który programista uzna za właściwy.
Czy tworzysz aplikacje Windows Store lub winform/wpf? – Xyroid
Natywny C++ na komputer. – tmporaries
Może to pomóc: http://stackoverflow.com/questions/16276139/difference-between-program-data-and-appdata. Zasadniczo (nie mogę znaleźć linku, który przeczytałem zaledwie dzień lub dwa temu, przepraszam - historia przeglądarki nie jest znaleziona) Otrzymujesz dostęp do zapisu do jednego folderu podczas instalowania programu. Późniejsze próby zapisu do tego folderu zakończy się niepowodzeniem. Podczas próby zapisu danych podczas faktycznego korzystania z programu (w odróżnieniu od fazy instalacji), musisz użyć innego folderu. Podejrzewam, że lepsze miejsce do wykorzystania jest wymienione w pytaniu, do którego się przyłączyłem. – enhzflep