Boost logo

Boost :

Subject: Re: [boost] [filesystem] home_directory_path
From: Marsh Ray (marsh_at_[hidden])
Date: 2010-10-26 15:17:41


On 10/26/2010 10:37 AM, Stewart, Robert wrote:
>
> Let me try making my points again, while incorporating subsequent
> ideas as well. My Documents is a default location for various
> kinds of documents.

There are marginally well-defined rules for how an application is
expected to behave WRT Windows directories:

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=88AD7E7C-4068-48B8-9503-E160A6693BBA

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=27028822-b172-4cec-91a3-26b610a4da79

E.g., MS:
> Windows Vista provides a specific hierarchy for application developers when storing application data
> within the user’s profile. The C:\Users\<username>\AppData folder is further subdivided into the following
> three discrete folder paths:
> AppData\Local folder for storing computer-dependent data
> AppData\Roaming folder for storing computer-independent data
> AppData\LocalLow folder for storing low-rights integrity data
> When storing per-user application data within the user profile, you can u

Note that these refer to "application-managed data" and not "user
managed data" and none of them are either C:\ or "My Documents".

MS:
> When reviewing all the data your application creates, you should have a clear separation between user-
> managed data and application-managed data. Applications should not create application-managed files in
> the profile root as that can cause unnecessary clutter. This type of data should be stored below the
> AppData folder within the user’s profile as described earlier.

This distinction is not present in unix, so there's no direct
translation of the concept of "home directory".

,In any case "<username>\Documents" is not appropriate for the kind of
thing that Boost is likely to be used for. Only the user can choose to
put a file in his Documents folder, so possibly the only reference a
program should have to it is the default folder for a file->save dialog
box. Yes, MS's own programs break this rule.

As for "C:\", MS:
> An application should not create files or folders at the root of the system drive and should use the folder
> structure as described in previous sections to store their program and software components, application
> data, and user data.

On 10/26/2010 10:37 AM, Stewart, Robert wrote:
> Windows users are notoriously naive because
> they come from so many walks of life, so it is common that
> everything be dumped in one place. Under earlier versions of
> Windows and DOS before that, users often dumped their files in
> the root directory of C:. Thus, My Documents is a way to force
> stupid^H^H^H^H^H^Hnaive users to dump their files in a less
> hazardous location. POSIX system users are typically less naive,
> though one reply mentioned the poster's wife as being in that
> class.

Windows did not have a defined location for the user's files until about
15 years ago, but now it does. MS admitted that they chose the names
"Program Files" and "My Documents" at least in part to force
applications to handle directories containing spaces.

Some programs still work better with shorter paths and paths without
spaces. But new top-level directories will normally inherit permissions
which are inappropriate for a secure multiuser system.

It's as simple as that. We can explain it without bringing in opinions
about the relative competence of users of the two systems.

> [...]

> My conclusion is that Filesystem should not provide a My
> Documents type directory unless there is an obviously good choice
> on the current system.

+1

Can we please not let the "one of the most highly regarded and expertly
designed C++ library projects in the world" get wrapped around the axle
with endless discussion of details about Vista vs Mac vs Gnome?

- Marsh


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk