On Fri, 15 Jul 2011 16:15:23 -0400, Nick Sabalausky <[email protected]> wrote:

"Steven Schveighoffer" <[email protected]> wrote in message
news:[email protected]...
On Fri, 15 Jul 2011 15:21:49 -0400, Nick Sabalausky <[email protected]> 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.

Certainly not having that function on Windows will encourage them to choose a wrong choice then, no? I mean if they want to find a "home directory" and phobos doesn't support that, then they google online, find something like %userprofile%, use it, and maybe file a bug against phobos for good measure :)

So there is no right answer, we should at least come up with *an* answer. In the Windows world of de-facto standards, we're bound to start a trend ;)

What about this?

~/Application Data => %APPDATA%
~/Local Settings/Application Data => %LOCALAPPDATA% or %USERPROFILE%\Local Settings\Application Data
etc.
Last resort:
~ => %USERPROFILE%

In other words, expand more than just the tilde.

My thoughts are, if we try and take a stab at making something intelligently decide where to store files, people will appreciate it more than having to search the web for a right answer to something that doesn't have one.

-Steve

Reply via email to