there are standard folder names for stuff like per user files and data files etc....
for one thing if you put files *only* in the proper \user\* folder then backup and restore can be done per user w/o having to backup the whole disk.
this also helps make the app work better with things like terminal server or the user trasnfer tool - move my files to a new pc thing.
it would also make the app work better in some corp. lans where users can not store files on the local drives and any files not in the users profile may be wiped at any time.
and documenting where the files are so that folks know in case they have a false alarm from a malware scanner etc...
see this in c#
Application.CommonAppDataPath <- shared files for all users of this app.
also using them takes case of the drive letter in case it's no C:
and if the user or the admin move the user folders to a different drive or map them to a network share....
then your app works better in more cases.
this aint DOS or WIndows95 anymore.
*PLEASE* follow the guildines on how apps are supposed to install and put files.
The app I made needs to know where the file is and modify it even when putting in a hdd from another computer. So if I put in a system hdd from another computer it would be quite crappy to start figuring out where the file might be without access to environment
variables etc. An ok compromise would be if I could elevate the program when needed at runtime instead of doing that on every run. I agree on your other points however that still leaves the question why the Demand/Assert gave no errors.
re: Guidelines. Just following the same guideline as Microsoft when throwing these files in C:\