My program contains a sql lite db file which my program creates after first run and then stores the data inside updon app usage. The database builds up over a period of time. The db file is created in the installation directory of the program
I have to update the app on a regular basis when there are bugs fixed, so basically I publish a new msi installer, the installer removes old installation files except db file and install new program files.
Some user's do not install it to the default location so in their selected location the db file is not present.
I want to know if it's ok to store data files to some program data folder outside the install dir ? so that every new update of my program can access the data from that program data folder.. ?
Is there any program data directory in windows xp, vista and 7 ? and how to access it in C#/
Have a look Environment.SpecialFolder Enum to decide about the right place for your data.
I would vote for Recent
folder though, here are other options:
Get the folder of your choice with
Environment.GetFolderPath(Environment.SpecialFolder.xxx))
It is very dangerous to store user data in the application folder. Not only will the data be destroyed if the user updates or uninstalls your app, but Standard users cannot even write to the app directory.
I typically include a seed database in the application and copy it to a folder in the Environment.SpecialFolder.ApplicationData
folder when the application launches. All user data is stored in the copy; if the user uninstalls the application the seed database is deleted but the user data remains. See this SO answer for an example.
You should not store data in the install folder. Try this. The special folders are designed for you to be able to store this kind of data. There is also the Application Settings, which are asy to access and provide an easy way to store user key value pair, Information.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With