"Steven Schveighoffer" <schvei...@yahoo.com> wrote in message news:op.vyoeirtveav7ka@localhost.localdomain... > On Fri, 15 Jul 2011 15:21:49 -0400, Nick Sabalausky <a@a.a> wrote: > >> >> Actually, if Windows did have one single equivalent to "/home/{user}", >> then >> I think it would be absolutely fantastic to make tilde mean "home >> directory" >> on Windows. But as things are, that's a moot point, of course. > > The typical thing is to use the environment variable USERPROFILE, but > that's an odd dependency for a string processing library. Windows also > doesn't keep the same notion of home directory as Unix does. You can read > more about it here: http://en.wikipedia.org/wiki/Environment_variable > > If that's the only function that uses environment variables, and you can't > have the function without it, it might be worth having it. However, we > must think about how that affects things like purity. >
No, like I've said, all the possible choices are frequently wrong, and that includes USERPROFILE. If you're selecting a default directory for the user to save/load a word processing document, then USERPROFILE is wrong (should be the user's My Documents - or the last used directory, whatever). If you're storing per-user application-settings/internal-application-data, then USERPROFILE is wrong. It should be APPDATA if it's roaming data (should remain with the user on different computers). Or if it's machine-specific (non-roaming) data, then it belongs in whatever the env variable for "%APPDATA%\Local Settings\Application Data" is. So expanding tilde to USERPROFILE will just encourage people to do the wrong thing.