views:

47

answers:

2

Hi:

I'm creating a little app that configures a connected device and then saves the config information in a file. The filename cannot be chosen by the user, but its location can be chosen.

Where is the best place for the app's default save-to folder?

I have seen examples out there where it is the "MyDocuments" location (eg Visual Studio does this).

I have seen a folder created right at the top of the C:\ drive. I find that to be a little obnoxious, personally.

It could be in the Program Files[Manufacturer] or Program Files[Product Name], or wherever the app was installed. I have used this location in the past; I dislike it because Windows Explorer does not allow a user to browse to there very easily ('browsability').

Going with this last notion that 'browsability' is a factor, I suppose MyDocuments is the best choice. Is this the most common, most widely accepted practice?

I think historically we have chosen the install folder because that co-locates the data with the device management utilities. But I would really like to get away from that. I don't want the user to have to go pawing through system files to find his/her data, esp if that person is not too Windows-savvy.

Also, I am using the .NET WinForms FolderBrowserDialog, and the "Environment.SpecialFolders" enum isn't helpful in setting up the dialog to point into the Program Files folder.

Thanks for your input!

Suz.

A: 

Opinion: all this documents-and-settings stuff with lots of spaces inside is really misguided, including "my" documents. You always end up having to type it manually at the command line. I would choose a NIH structure under user's harddrive, he will only say thanks.

Pavel Radzivilovsky
I agree with that assessment, which is why I am resisting using "MyDocuments." However.. the Documents/Settings thing is a bit more straightforward with Win7.. that is, there is none. THere is just your user name and "Documents" .. I have been using it myself now that I am on Win7.. but I don't really want to put stuff there for the sake of my WinXP End Users. Can you define "NIH structure" please?
HotOil
Don't forget that normal users only have write permission in their "home" directory.
0xA3
NIH from "not invented here", the mislead ideology of reinventing standards. NIH structure - as in "an alternative to commonly accepted One Microsoft Way", strictly speaking should be called an "IH" structure.
Pavel Radzivilovsky
+2  A: 

User data belongs in the user's folder. The (utopian) idea there being that they need only back up their personal folder, and should their computer die a sudden fiery death they would have everything they need to get their computer back up in working order. If all their personal data is scattered across the computer it only serves to confuse the user and destabilize your product.

fbrereto
0xA3: I'm not sure that would be the case in this situ. These config files belong to the device that is being configured.. not the application. So if the user takes the device and goes away somewhere with it, it should be pretty easy for him/her to locate the config file to bring it along, or share it with someone to configure another device..fbrereto: Thank you for the rationale.
HotOil
Configuration files in particular should go to the AppData or LocaAppData folder. And of course, another reason to keep user data in one place is that user's only have permission to write to their folder.
0xA3
App Data is not easy to find, even in the user folder.. unless the only way the data is accessed is by my application. hmm
HotOil
Belaboring this question: I want to put this in an obvious place. By default, I will create a folder in one of two places: the MyDocuments or the Desktop. The user will get to override the choice. Which is the bettter default: Docs or Desktop?
HotOil
I'd vote for a subdirectory under MyDocuments - the Desktop is too in-your-face a location for an application to be putting files there implicitly.
fbrereto