On Sat, 30 Jun 2012 18:32:58 +1000, Dennis Volodomanov
<[email protected]> wrote:
> On 30/06/2012 12:57 PM, Kees Nuyt wrote:
>>
>> Is the database file in a protected folder (that is, "\Program Files",
>> or somewhere in the Windows system software tree) ?
>>
>> It shouldn't be. Data belongs somewhere else. Either in your
>> userprofile/appdata or in a completely separate dirtree that Microsoft
>> doesn't try to manage.
>>
>> HTH
>>
>
> No, the database is not in a protected folder, it's in the common
> appdata folder (ProgramData on Windows7).
Mind you, there is a difference between the "special folders" (=symbolic
path names) :
AppDataFolder
= Full path to the Roaming folder for the current user
and
CommonAppDataFolder
= Full path to application data for all users.
and
LocalAppDataFolder
= Full path to the folder that contains local
(nonroaming) applications.
To my understanding, CommonAppDataFolder is virtualized to
\Users\%USER%\AppData\Local\VirtualStore\ProgramData\ ,
which is at least a form of protection. Also, normal users would not be
able to delete files from CommonAppDataFolder , which is another form of
protection.
I haven't hacked Windows for a long time, but my guess is:
1) you are running as administrator,
2) or you (partially) disabled protection.
Which is not the best way to test applications.
Only your installer / uninstaller should touch CommonAppDataFolder .
I suppose the merits and best practices of folder virtualization are
documented on MSDN somewhere.
You are certainly not the first one to bump into this, a popular search
engine gives me 909000 hits on q=windows7+programdata, for example
http://www.codingquestion.info/6732413/deleting-file-from-cprogramdata-in-windows-7-does-not-really-delete-the-file/post
--
Regards,
Kees Nuyt
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users