Date: | December 28, 2006 / year-entry #429 |
Tags: | other |
Orig Link: | https://blogs.msdn.microsoft.com/oldnewthing/20061228-02/?p=28563 |
Comments: | 118 |
Summary: | As a follow-up to the difference between My Documents and Application Data, I'd like to rant about all the subdirectories of My Documents that programs create because they think they're so cool. Visual Studio Projects My eBooks My Received Files Remote Desktops My Scans My Data Sources My Virtual Machines My Archives I'm sure there... |
As a follow-up to the difference between My Documents and Application Data, I'd like to rant about all the subdirectories of My Documents that programs create because they think they're so cool.
I'm sure there are more. Everything in the My Documents folder the user should be able to point to and say, "I remember creating that file on such-and-such date when I did a 'Save' from Program Q." If it doesn't pass that test, then don't put it into My Documents. Use Application Data. And don't create subdirectories off of My Documents. If the user wants to organize their documents into subdirectories, that's their business. You just ask them where they want their documents and let it go at that. (Yes, I'm not a fan of My Music, My Videos, and My Pictures, either.) Omar Shahine points out that Apple has similar guidelines for the Macintosh. I wonder how well people follow them. |
Comments (118)
Comments are closed. |
I have 110489 files and 41861 sub-directories within My Documents.
I really hope you don’t expect people to flatten their My
Documents folder. I also hope the people designing applications
that add subdirectories don’t listen to your rant.
entry before commenting. I wrote, “If the user wants to organize their
documents into subdirectories, that’s their business.” -Raymond]
Even worse is that they all start with "M". I like to use keyboard shortcuts to get into a subdirectory, which is hardly a shortcut like this.
Worst of all is the "My eBooks" folder created by Acrobat reader (which should be banned anyway) every frigging time the thing is started unless you disable one of its plugins.
Even though I agree with Raymond, I find myself stuck between a rock and a hard place. Being the creator of a program that dumps files into "My Documents", I was a hard choice.
We use to save the files in "Application Data". But the users found it too hard to locate the files quickly. So we moved to files into a subdirectory in "My Documents". (Save games, log files, configuration, etc…)
Why the hell I have in my Czech windows "Dokumenty" stupid "SyncToyData" or "My eBooks" subdirs ?? Especially when documents are redirected to network server for roaming ! I do not uderestand why "My Virtual Machines" try to put there few gigs of data ? They aparently go to Local Settings, don’t they ? Do not touch my documents. Anyway, some apps do not respect me and do what they want in My Documents…
Peter – it’s not that I’m expecting people to flatten their "My Documents" folder – I want them to be able to manage it for themselves.
Yes, if a user wants to create separate folders for each application that they use, they should be free to do so. Also, applications should remember the last-used directory when a user loads/saves a document and open that the next time the user comes to load/save – even across application restart.
But for me, an app writer, to assume that the user is unable to keep track of their own files and to create my own directories all over the place? No!
Steven:
http://www.foxitsoftware.com/pdf/rd_intro.php
FoxIt PDF Reader
Like Adobe Acrobat Reader except… better in EVERY WAY. Lighter, faster, integrates with a browser better. Let’s all band together and get Adobe to fix that horrible abomination of software by downloading their competition.
Worse than this subject is applications that put data in <user>Local Settings that should be in <user>Application Data, or vice versa. Way to break roaming profiles, developers!
Ohh man, I hate this behavior. I’ve unistalled and returned software for this kind of crap. Jeeze, you WTF’ers is it that much trouble to ask where to store your stuff or allow users to modify your defaults?
Yeah, Adobe developer, I’m especially pointing my finger at you. If I ever hear you admit to implementing that crappy "My eBooks" folder I’m going to pound your ass right then and there. I’ve never read an eBook in my life. I never plan to. Yet I get stuck with an empty folder cluttering every profile’s "My Documents"? Idiots.
Creating folders under My Documents is a big improvement over using the root of C:.
I would like to put everything in isolated storage, but there is no easy way for users to manipulate the files in isolated storage.
I’ve heard Vista is dropping the “My”, which is a good thing if
true, for the same reason a user stated above. Using a keypress
to jump closer to where you want to be is helpful.
It is correct the user should have the most freedom in personalizing
this space. I personally like the subdivisions most products
make, but I wish that they allowed that folder to be changed easily.
Not sure what the “best” way is to do it, but I’d like a simpler,
consistent pattern of “for application X, click here, type in default
path for saved documents, click ok” or even a rename/move that folder
pattern.
dialog. Fortunately, the simpler, consistent pattern is much less
complicated. -Raymond]
@ James: That’s the one I do use, indeed. It solves both the "My eBooks" thing and starts up much faster to boot.
Another problem with ‘My’ thing is that all folder names now begin with ‘M’ so it gets more difficult to find one you need in the list. Vista may be dropping ‘My’ but it is adding ‘Windows’ in front of all application names in the Start menu. Windows Live, Windows Internet Explorer, Windows Movie Maker – I personally have difficulting reading through that ‘sorted’ list.
Guess what, I entirely hate My Documents.
I save my Visual Studio projects in C:PRG. Images in C:PICS. Music in C:MP3. The only folder I use under My Documents is.. Desktop. My Documents is too hard to reach using Win+R or command line.
And no. Search box in vista is too slow to be used so frequently.
+1
It’s a little better on the Mac side, but not much. There’s annoying "Acrobat User Data," "AppleWorks User Data," "Microsoft User Data" "Quicken Backup Folder" folders (hmm, the usual big-company suspects) and "Web Receipts" (created when you "Save PDF to Web Receipts Folder" from any print dialog). Plus some from smaller companies.
Savegames are possibly the worst offenders. Some MS games at least try to be neat by packing everything into a single subdir (My Games).
Adobe Reader 8 gets an extra one-finger salute for creating the enigmatic "Updater5" subdirectory in Mydocs.
Of all of these mentioned My Doc sub directories, My Virtual Machines has to be the worst. In my experience, My Documents is often a redirected network share. This often causes performance issues for large I/O going to that folder – especially as the filers handling the redirected My Documents are often busy. If lots of people have virtual machines running out of My Virtual Machines you have massive I/O issues as large numbers of entire operating systems fire up off of a filer built to handle small document handling. Who thought of this?
I’ve abandoned most of the special shell folders, surrendering them to the arrogant app authors that think I care about their pissy little app.
I don’t use the desktop at all. I hid it using policy, so it’s blank. (When I first started using WinXP there was an option for this on the desktop context menu, but it vanished somewhere along the line…)
I created my own c:Documents to replace “My Documents” on my single-user system. At work, I have a “Documents” directory inside my network-mounted home directory.
I made my own Quick Launch toolbar in a completely different directory. However, I decided shortly afterwards that it was a waste of taskbar space and got rid of it entirely.
About the only standard Windows shell folder I actually use is the Start Menu folder, because there’s no easy way to replace it. I’m constantly fighting apps that want to litter it with crap, always in folders with obnoxious names like “Supersoft(TM) Brilliant Super Uber App 2.0 Special Edition 2003”, like I really give a crap about their brand when I’m trying to find the app. I wish apps would just be limited to a single shortcut which is placed in a category of my choosing.
I hate my docs as well, but AppData is a hidden folder for crying out loud! I do not expect my users to locate application specific files there.
Hiding AppData was a huge mistake. Almost as huge as hiding file extensions by default! Grrrrrrrrrrrrrrrrr! (not to mention “simple” file sharing and hidden OS files — XP is useless, I wish there was a workstation edition of Win2003 around)
So… I’m sorry Raymond, but don’t expect me to fix my application until my users are able to locate the freaking AppDir folder! Sheesh.
—
Rune
My Data Sources
My eBooks
My Google Gadgets
My ISO Files
My Music
My Pictures
My Received Files
My RoboForm Data
My Shapes
My Videos
My Wallpapers
MySetups
…My eyes! The goggles do nothing!
A small tip for the people who like to navigate with their keyboard. If you start typing the name of an item in an explorer window, the selection will jump to the first item that starts with that sequence.
e.g you type "My V" and the selection will be at My Videos
The problem with hiding AppData and LocalAppData is that they are located in the user’s profile directory, which as much as possible, I want to back up as a whole, but there is a lot in AppData and all of LocalAppData I don’t want to back up. So I periodically have to unhide all the directories in my profile so I can choose exclusions in my backup program. Actually, I wrote a large part of my backup protocol, and the part I wrote understands CSIDLs, so excluding LocalAppData is easy. I still need to know what’s in AppData, however, because programs sometimes (often) put things in the wrong place. For example, Shockwave Player has a 1.5MB file "Flash Asset.X32" in AppData, and I don’t need or want it taking up space in my backups.
Creating folders in the Documents directory is an example of the "users are idiots, so let’s do things for them" syndrome. As a user, I know the best organization for my Documents folder. My programming work goes in the "Documents/Code" folder, my invoices go in my "Documents/Invoices" folder, and so forth. When a program comes along and creates a "Documents/My Virtual Machines" folder, what they are really saying is, "You are an idiot, user, and can’t be trusted to organize your own files." Nonsense! I know more about my Documents than some guy at Microsoft does. Just give me a generic "Save As" dialog box, and I will organize MY files MY way.
Of course, some things such as "Documents/Remote Assistance Logs" enter the realm of pure stupidity. Whoever decided to dump that folder of indecipherable XML files in my Documents folder deserves to be fired.
I’m going to have to disagree with you on this one.
In particular, I prescribe to Alan Cooper’s beleive that regular people have no clue about how to navigate a file system.
Many non tech savy people I know literally have no idea that there is a my documents folder on the computer that stores all the documents. Instead, when they want to open up, say, a word document, rather than navigating to the folder that contains the document and double clicking on it, they launch word and then select "open".
Then they see a list of all the word documents they have ever created on the computer, because they don’t know that a file system exists and have never navigated away from the my documents folder using the program’s save dialog. When they save something they just type a name into the box that says name and then hit the save the button.
Given that ordinary people don’t know about file systems, have a tendency to just use the default save location provided to them by the programs they use, and don’t use explorer.exe to open their documents, I think it’s really a non issue where these programs choose to place their default save location.
I will give you that people who do know about and use file systems may be irritated by excessive hierarchy because it makes things hard to find. However, I don’t think this is indicative of a problem with the programs themselfs. In fact I think the problem is rooted in the whole concept of a file system in the first place.
I’m not saying that file systems should be gotten rid of. For software, having a hiearichal information store that is abstracted away from the underlying hardware is an incredibly valuable and powerful tool. For ordinary people, however, it’s just confusing. I think the real problem is with the nature of the abstraction that the "my documents" folder provides.
It’s leaky. It gives the impression of hiding the details of a file system from the customer. However, it tries to do this by creating a "special" location in the file system that behaves exactly like every other location in the file system. By definition, this can’t work.
It’s analgous to mutual fund managers. Every mutual fund manager claims he can beat the market. However, the stock market is, predomentantly, made up of instutional investors. As a group, fund managers can’t beat them selfs.
Similarly, I don’t think its feesible to fix the file system with a file system. I think the real solution is to replace the "document repository" abstraction with one that doesn’t leak.
I never liked the "My" business either. Not sure why, it just sounds Mickey Mouse.
So a few days after installing XP five years ago, I renamed "My Documents" to "Documents".
My system has been slightly broken ever since. Apparently the "My Documents" folder holds some special status with the OS, and simply renaming it creates havoc.
Damn, I always thought I created "My eBooks".
But I think if the user is likely to browse the files in explorer, it’s better to put them in My Documents than in Application Data. For example, "My Received Files" is OK because user does let files be downloaded there.
Application Data is really for applications, not for users.
Raymond failed to explain what he really meant here.
He meant DO NOT CREATE FOLDERS AND FILES IN MY DOCUMENTS FOLDER UNLESS INSTRUCTED BY USER.
Here is an example, Adobe programs create folder named “Updater” in My Documents folder.
Now I ask you this — how does any file related to application update process fit into “My Documents” scheme? The answer is pretty obvious. It doesn’t. User doesn’t care about those temporary files and folders, their place is in %TEMP%, not in “My Documents”.
Furthermore, if the folder is called “My Documents”, then it should contain only that — DOCUMENTS, be it .txt, .doc, .xls, eventually .pdf but not the document types I have not created or those which I can’t EDIT.
Unfortunately, Raymond seems to miss the point here because he doesn’t realize why everyone puts their stuff in “My Documents”. It is because “My Documents” IS THE FOLDER WHICH ALWAYS OPENS FIRST WHEN YOU ASK FOR OPEN OR SAVE FILE DIALOG. If such a feature didn’t exist then each program would have to ask user where to keep the files and to remember the location. This way everyone wants to show up in the default location. So this is actually a Microsoft’s fault.
@Scott: For the kind of filesystem-ignorant users, what’s the advantage of creating all these subfolders vs. putting everything into My Documents?
Either way, if the use File->Open in program X, they will see all their X documents, if the use File->Open in program Y, they will see all their Y documents, because File->Open will filter by file type anyway.
However, if they try to use the file type filter in the Open dialog to see other files, if the app uses its own subfolder, they won’t see these other files :-(
The really annoying thing is for us people that put their OS on a 5GB partition. That is a fine size, until you start realizing that tons of application & game programmers decide to store big save game and application data there. Reducing your once fine amount of space to a threateningly small amount.
I had to move my My Documents folder to a separate drive. I hate feeling like I’m too dumb to manage my own data. But I suppose application & game makers feel we are too dumb to point where we want our data stored.
Try playing The Sims 2.
"My Documents/EA Games/The Sims 2"
contents size? >1.5Gb last time i checked… my wife has been playing a bit lately though, so you never know.
Oh, did i mention they tell u to back the sucker up every time you install a new expansion pack? thats 15mins waiting to save all your profile data before the get go of installing…
I didnt notice the actual size, so i filled up my HDD before i realised…
@Raymond:
I never said a settings dialog. I just said, “a simple, more consistent pattern”.
Perhaps it’s as simple as remembering where I saved stuff last time? Perhaps the Open Dialog box is good enough, as you can create new folders there and do minor file system operations. But maybe I saved something else there last time as a one-off. The rest of the time I save it in a default place.
Remember, I also said; “Not sure what the ‘best’ way is to do it”… so I do apologize for not thinking too much about it before posting.
Generally speaking, I am too tired of having to plow through option menus in different applications just to find out where they plan to save files by default. Maybe no one should have any menus or settings, and just open “Documents” by default. The problem I see with that is if I have a deep documents structure, that could get old quick.
Another problem is should applications really have to ask? This is why there needs to a be a set-it-and-forget-it in some way. I don’t really need to tell Media Player to go rip this CD to Documents/Music/Artist/Title again. I don’t need to tell Visual Stdio that I’d like my new Visual Studio solution to go in Source/SolutionName again. These are my preferences, do I have to tell you every time?
We are in agreement that applications should not just “do what they please” or “do their own thing”. I am not in favor of another settings box (where would it go and how would ‘grandma’ find it?), but I would like more consistency between apps, even if that consistency is to stop hiding Documents paths options deep in their menus.
When do you ask a user? On install? In an option menu?
Sorry if I sounded like I was submitting a proposal to be reviewed. I wasn’t, but I certainly feel the pain of having to learn some deep advanced trick to where my files are going to go by default depending on the application.
Wait wait wait… weren’t you saying that Visual Studio Projects should be placed in Application Data? Are you saying that when I create a project in Visual Studio, I somehow shouldn’t mess with it? Didn’t I create it? Now if you said the home folder, I’d agree, but Application Data is indeed for settings files and stuff like that, not for projects the user created. If you look at the new Visual Studio 2005 folder hierarchy created by VS2005, there’s definitely some stuff there that should arguably go into AppData. Projects is not one of them though.
Pre-Vista the user’s home folder is just way too difficult to find (and even in Vista it’s problematic that you can’t move it in its entirety after installing Windows; at least stuff in My Documents automatically ends up on D which is preserved whenever I reinstall), so My Documents is pretty much the only place you can put stuff if you want the user to be able to find the files afterwards. And indeed, most users won’t organize their files by themselves so the apps pretty much have to do it for them.
And for what its worth, I had my VS projects in a folder called "Visual Studio Projects" (as a subdirectory of My Documents) since Visual Basic 5; yes, that’s before Visual Studio started doing it (iirc it first showed up in VS in Visual J++ 6 and Visual InterDev 6). :) In fact, I think I might sue MS for stealing my idea. :P
@Crunk:
You should absolutely be able to pick where you want your files to go by default. But how do you present this to a user?
What if a game is being played by a child? My sister was playing Zoo Tycoon when she was eight. She knew nothing about the file system, but she did know she could hit Save and give a name that described what she was doing and it just magically saved it. Then later, she could open it by selecting that same name from a list. She didn’t know it was in (made this up) My DocumentsMicrosoft Game StudiosZoo Tycoon1.0SavesJustBuiltZebraExhibit.ztp
I’m glad that stuff was in My Documents because I could just backup her My Documents folder and I got her saved games.
It becomes harder when every application does things differently, so consistency is good. But, then you have games, which intend to be immersive. They don’t want to "break character", as it were, to bring up a Windows Open File Dialog. They might immerse the save process in the game, or use controls that look like game controls.
A quick check on the mac reveals there are three offending folders in the Documents-folder: "Microsoft User Data", "Microsoft Användardata" and "AdobeStockPhotos". Note that there are actually four separate folders instead of documents:
~/Documents
~/Movies
~/Music
~/Pictures
Things look worse in the others, with folders such as "iTunes Library", "iPhoto Library" etc.
@Raymond;
"If you have to ask the user, you’ve already lost."
I wholeheartedly agree, and I went and read the clip you mentioned. I’m not sure if I recall reading it before, but I do recall the philosophy. As a standalone philosophy of design, it’s great and I agree. I can think of times I’ve succeeded at this and times I’ve failed.
But when it comes to My Documents… honestly, I’ll admit I just don’t get it. I’m thinking of several use cases and I can’t see how you make them all just work. I had to find the default save path options for Visual Studio (admittedly less important because I tend to get a chance to name my solution as I’m creating it). I have no idea where they are in Office (so the Save Dialog pops up "somewhere" and I navigate to where I want to save). I vaguely recall finding where the default Rip Music path option was in Media Player. And fortunately, Zoo Tycoon "just worked" for my sister (as mentioned above), but it still took me fishing in her folder one day to see where the saves were going.
I personally just wish I didn’t have to learn something new for each app.
Thanks for taking the time out of your busy day to read my comments and personally respond (which I wasn’t expecting). I will continue to read and try to wrap my head around what you are saying here. I just don’t get it right now… I didn’t get a lot of things the first time I read them, either.
In the end, your article said "stop creating nonsense folders users may not want or ever use". I’m looking at My eBooks right now, and I agree.
From the same Apple guidelines that Shahine quotes, under the Library Directory entry:
"If your application stores the user’s data automatically—that is, without prompting the user for a location—you should choose a more appropriate location (usually the Documents directory) inside the user’s home directory"
I am actually in favor of programs writing in My Documents. Why?
because My Document can be made remote-mounted. At my home, all the My Documents folders are deported – you cannot do this in XP with any other folder, even application data – to a network folder on a linux server (it could be on a NAS, too). Thus I do not have to backup the PCs. If one PC disk dies, I just hange them, knowing that the important data (saved games notably :-) are safe of the reliable, backuped, central server.
I agree w/ this- but mainly because profile size can affect login times (esp in roaming profile scenarios). Having all of my music,videos,and documents within my login profile just doesn’t make sense. There should be another secure area for your account where they reside- that doesn’t load with your profile. Personally, I rt click on My Documents and redirect the folder to a separate partition. That way if I ever need to reinstall OS all my media is off the OS partition and easier to maintain.
Forgive me if I’m putting words in to your mouth Raymond, but I think you were pointing out two separate issues with regard to my documents:
1) Non-document, application data that the user is not expected to use directly should be placed in the Application Data directory. This would include temporary files, configuration files, scratch data and any saved data where the program rigidly defines the save and load mechanism (i.e. almost every game designed for Windows; very few games ask you for the actual name of the save game file, they ask for a name for the save and then save the data with the given name in some file named "ReallyAwesomeGame0.sav"). Hence "My Documents" are there for the user to save to if you give them a save dialog and should only contain files that they are likely to manipulate directly (e.g. rename; copy to take to work or home; attach to e-mail).
2) Given files that fit the "document" description, no application should automatically (or even after asking nicely) create a folder for the user. If the user wants to save it in My DocumentsMy Projects, they’ll create that folder themselves. The application should just merely ask them where to save the file(s).
maybe another thing about my docs
it’s the only folder you can write in when you do not have all privilege
I have recently been using a really old Mac (System 7.5 rocks!).
In one of the control panels (I forget which one), there are three options as the the default location in file dialogs:
1) Let each application decide for itself (Due to the way the OS works, if the application has no preference, then it generally uses the folder the application is in).
2) Remember the last folder used (This is done per-application as far as I can tell).
3) Use the ‘Documents’ folder (Created on the desktop automatically if this option is enabled)
Add in a ‘Custom folder’ option (I suppose you could hide it in group policy/the registry if you have to) and I think it makes a very good solution.
I personally would use option 2. Option 3 would be the default (although it’s option 1 on the aforementioned Mac). Option 1 is "behave like Win95" in Windows terms.
Let me begin by saying I agree for the most part. Excess folders that I didn’t create annoy me.
However, I do have one question. Where should programs put folders for users to put stuff in? The Visual Studio subfolder, and the My PSP Files subfolder (for Paint Shop Pro) both have folders in which you can place your own custom content that is in turn loaded by the application. If the application data is reserved for program per-user data and the application folder presumable reserved for core application related stuff, where does the complex per-user custom defined content live?
I suppose the solution would be to let the user put it anywhere, then tell the program where it is. And installers for custom content would have to register themselves with the application. Not quite as simple anymore though.
I only count one death threat to me: someone who knew my address and had a concealed carry license and significant real-world motive for being annoyed with me rather than merely incapable of expressing themselves in some other way.
Re My Documents, I’ve just given up on it, accepting that the one thing it doesn’t really contain is my documents.
@SimonC: Yes, the Sims games are fairly notorious for ridiculously large save game files (this is true on both PCs and consoles).
As to the discussion in general: AppData and LocAppData simply don’t fully serve their purpose. Regardless of whether I created it, or whether the designers of GameX thought to let me choose the save directory, I want to know where my app puts its user-specific data so that I can back it up or migrate it to a different machine without jumping through hoops. AppData is not this folder… and given the options, MyDocs ends up being the alternative.
As to the idea that AppData shouldn’t be messed with… who says? Where else are you supposed to put a user’s configuration that isn’t in the documents directory? Why insist that I (as a user) am never going to want to touch those files?
The thing is, if nobody conforms to a standard, it’s not a standard. Saying that people should use these folders as Microsoft intended is akin to insisting that windstorms should stop ruining our nice power lines, which weren’t designed to withstand falling trees. If the standard fails, create one to cater to what people are doing instead. To extend the metaphor: If trees keep knocking out your power lines, put the damn things underground instead of cursing the wind. :)
i think vista has changed this way.
Now
* Visual Studio Projects
* My eBooks
* My Received Files
* Remote Desktops
* My Scans
* My Data Sources
* My Virtual Machines
* My Archives
should be within Usersname[..]
so that My Documents really has documents :p
having too much folder is bad because it’s harder to spot your files in the tiny openfile window
Hmmm….I’m working on a product at the moment where we create a "XXXXXXX Projects" subdirectory in "My Documents"[0] simply because "that’s what Visual Studio does"[1].
Which can’t really be argued against by a lone developer when everyone above them drinks the MS Kool-Aid.
Hell, even Joel says[2]: "Even if it’s not right, if Microsoft is doing it in a popular program like Word, Excel, Windows, or Internet Explorer, then millions of people are going to think that it’s right, or at least, fairly standard, and they are going to assume that your program works the same way."
I’d love to be able to do things in a rational kind of way, but there are strange forces at work, mightier than the reason I can muster. :(
[0] I also hate "My Documents" with a passion – any folder called "My [something]" that I did not create myself was obviously created by someone else, and is therefore *not* mine. IMO, if it was called "Your documents", that would have made more sense. *sigh*
[1] Not my idea, honest. I’m also a fan of leaving it up to the user, and assuming they know what they’re doing.
[2] http://www.joelonsoftware.com/uibook/chapters/fog0000000061.html
@Peter Ritchie: you absolutely and completely missed the point of the article. It’s not against your subfolders, it’s against polluting the main folder with *your documents* with some stuff you haven’t created yourself.
If Raymond’s opinions would have more impact to the final products (at *least* these that come from his company) the life with computers would be much nicer.
I think I don’t speak only for myself if I ask: can we vote somewhere for Raymond?
I never use My Documents. I have a folder called Data and a number of subfolders thereunder. And I rename every damn thing on my computers that uses the imperious first person.
For those people out there who like to put their OS install on a small partition, I have a tip you may find useful: automate your install with an unattended answer file. You can set answers in this file to cover various useful locations and in almost all cases it works correctly afterwards. For example, I use:
ProgramFilesDir="D:Apps"
CommonProgramFilesDir="D:AppsCommon"
ProfilesDir="D:Profiles"
(The last one actually goes in the GuiUnattended section, the first two just in Unattended).
This keeps the system (C:) partition extremely lean, and it’s easy to blow away the system for a fresh install without risking any of your data (except possibly in the case of some very-badly-behaved software).
In 99.9% of cases, software installers will provide D:Apps as the default root instead of C:Program Files.
Note that some partitioning and formatting should really be done before the installation, but once you’ve done that work, it pays off in the end. This method beats my old method (after install, use registry search and replace to find "program files" and "progra~1") hands down. Everything is set correctly, from start menu shortcuts to registry keys.
I think the problem is that there’s a middle ground that Windows doesn’t address – a place that users can mess with but doesn’t hold their documents. The Visual Studio folder is a good example – to install a code snippet or a visualizer, the user needs to copy files into that directory tree. Since AppData is hidden, that’s obviously not a reasonable choice. So what’s an app to do?
My biggest peeve is programs that can’t handle when my documents is mapped to \servernamesharename (Sims 2 is the noticeably big offender here – causing me to map that to P:). My biggest headache is a program that installs data to My Documents, and then CAN’T HANDLE this to the extent that the dialog to move the default storage location WON’T WORK if My Docs is a network location (mapped to drive letter or not). I had to do some kind of crazy cumbersome workaround that involved moving my docs twice and I still had to move the default location anyway. Plus, I never found where I could frob the location manually in the registry or anywhere else. And tech support came back to me with "we don’t support that config"…
Application Data is not the solution, it’s part of the problem. Users will *never* find that folder or the files it contains unless they are in the app that created it. If you are the developer of an app that handles a common file format such as jpeg, it would be easier for users to find the file if you put it in the Recycle Bin! At least Windows surfaces a UI for that one.
I use linux and my home directory is neatly divided up into:
devel doc games music packages video
I agree that having tons of "My Crap" directories automatically created for you is extremely annoying. When I use windows I always delete them but annoyingly they recreate themselves.
[I think this counts as my second death threat. -Raymond]
That’s not a death threat; it’s a teenager with too much time on their hands (winter vacation and all)
Totally agree with you!!!! Beside:
I want to name the sub-folders in the name I want.
And those stupid software just re-create the sub-folders if I delete them.
I think at least they should let you change the name/location in option, it they really need to have a folder in some way…
My office machine maps my document off network drive with quota so I don’t really want everything goes there.
I hope those developers will in one day understand that it’s my machine and I want to do things in MY WAY, not theirs….
To be honest, this is a non-trivial problem. We’re bashing XP here, but in my opinion Linux doesn’t handle it very well (user settings are typically stored in .folders in the home folder).
I stand by my opinion that filesystems are too complicated for most people (though, "most" is becoming smaller each day). I personally don’t think search is necessarily the answer at it relies on recall of pertinent information rather than recognition. You have to remember some of the first line of your Word document (since this is the default filename), or how many weeks ago it was created.
You can’t expect *real* users to organise their My Documents–they simply won’t. Likewise, you can’t expect them to find their files if they’re all dumped in MyDocs. I think it’s good that apps create subdirectories for their data.
The silliness, in my opinion, stems from Microsoft. They started the My… trend which makes My Documents very hard to read. You’re looking for pictures so you go to P.. right? Wrong, it’s M like everything else.
The other stupid naming convention is that of "My Documents". My Documents is not just for documents. Vista seems to solve this.
The convenience of all data being in My Documents is that you can set your backup system to just backup My Documents (and any other must have folders). Backup is something home users can’t do so there’s no point making it any harder than you have to. You should have a top level folder that contains all persistent data the user would like to keep (i.e. includes music, pictures, favourites, etc. but not application settings).
Hi Raymond. In answer to your question, on my Mac I have the following folders in ~/Documents that I didn’t create explicitly:
(1) eBooks (by Adobe)
(2) Microsoft User Data (by MS Messenger – the other MS apps like Office seem to correctly use something else)
(3) "Goliath Editing Folder" (by Goliath – a WebDAV tool)
(4) "Installer Logs" (by MS Outlook – granted this is an old app and may be a Mac OS 9 convention?)
(5) "Office Projects" (by MS Entourage – it prompts you before it does it)
In response to other posts:
(1) Both "My Documents" and "Application Data" (and most of the other sub folders of the user profile) can be redirected to the network (or some other folder outside of the roaming profile) by group policy
(2) There actually is a non-roaming by default "Application Data" folder in Local SettingsApplication Data
(3) Any folder in the user profile can be excluded from roaming anyway
(4) Apps that "do the right thing" will find the "My Documents" and "Application Data" wherever they are by looking up the CSIDL (or using a method that does)
(5) If you want to move/rename the "My Documents" you need to update the CSIDL value in the registry (and yes I am sure it is not offcially supported by MS to go in and change these manually)
I agree with you on the need to get people to stop doing this, but I also agree with some others that many people simply aren’t smart enough to grasp that this would be a better way to organize stuff than dumping it all in one flat level.
I don’t really mind installers creating this dir, and even apps defaulting to it if it exists, as long is it is gone when I delete it AND DOESN’T CAME BACK!
I guess Adobe’s Acrobat and it’s reader are particularly nasty in this respect, at least I think they are to blame for the My eBooks that keeps coming back, even though it stays empty (that must be the worst thing, creating it just to have it there, not doing anything with it!).
But yes, as Microsoft started doing this, everyone followed (as usual), thinking this would be what users expected. And I even think that this did indeed become what users expect…
And whatever #%#@%$ came up with the idea to start everything with ‘My ‘ should be fired (at least) IMO. Why on earth would I want everything to start with the same letters…
If you really don’t want the directory to keep coming back, create a file by that name. Then hide it so it doesn’t show up and bother you all the time.
The old new thing has a short article about the use of the My Documents, which links to a short entry about the use of the Documents folder on the Mac. Let’s see how many folders I have on my…
I’ve fought about this for a while. When I create documents from my application, I generally put them in my documents, but there is one caveat – the files are intended for end-user consumption under another application (For example excel). For somplicity’s sake, I omit the save-as dialog, but I’m practically always following the creation of the file by a ‘ShellExecute(‘open’, (file)…)’; so I don’t feel obscenely guilty.
The My Documents name thing is a bit surreal, it is labelled ‘My Documents’, but the shell gets a label from information within the folder, allowing it to label it as ‘John Chrichtons Documents’, which I find pretty nifty from the shell side.
I have a lot of subdirectories on my own machine, and for the most part they’re not changable within the program in question. I would rather they didn’t start with ‘My’, as that’s just a pain in the ass. The shell built ins can be replaced using the tweakui power toy, but for the rest I’m afraid you are out of luck.
Bruce:
> You can’t expect *real* users to organise their My Documents–they simply won’t. Likewise, you can’t expect them to find their files if they’re all dumped in MyDocs.
Sure you can – this is where search comes in handy. If Joe Schmoe has 300 docs with forgotten names, he should be able to go look for his letter to Tony without figuring out what he named the document.
"My Documents is too hard to reach using Win+R or command line."
In XP, press Win+R and type "My Documents" to get directly to the folder. This is easier in Vista, since it’s just "Documents". Also, since Vista moves the picture, video, and music folders to the root of the user directory, one can type Win+R, "pictures" to get to the relevant directory easily.
From the command prompt’s default directory, cd my<TAB> should expand to cd "My Documents". Vista defaults to having command-line completion turned on, and it’s fairly simple to enable in XP.
I tend to type "." in the Run box to get to the root of my user directory, where I can jump to whatever I need.
PMP
I agree, get rid of the useless folders already.
If an application comes with sample files, where should the installer save them by default?
Raymond says:
“And I don’t understand how “each program would have to ask user where to keep their files” fixes anything. Even if you ask the user this question, what is the default answer?”
Lets take Visual Studio 2005 as an example. It defaults to My DocumentsVisual Studio 2005″.
Inside of that folder you have:
-Backup Files
-Code Snippets
-Projects
-Settings
-Templates
Put aside the fact that many of those folders are not something that interests me. As a matter of fact, I don’t care about anything except Projects which is already two steps deeper in the hierarchy when you want to browse to it through Explorer. Have I been asked where I would like to keep my projects?!? Nope. Instead I have to dig through options and change it.
Analogy: Can you imagine having a roommate who puts their things wherever they want without asking even though you are the one who pays the rent?
To continue, why are:
+VSMacros80
+-MyMacros
+-Samples
Part of the Projects folder? I want Projects to contain only PROJECTS for God sake. It is clear that all those secondary folders should go to Application Data.
Now with that out of the way, what should a well behaving program do?
Upon install or on the first use it should ask user “Where would you like to keep documents created with this program?” Options could be:
1. “My Documents” (flat, no subfolders)
2. “Let me chose or create a folder”
#1 would be the default you are asking for.
From there on, every time user wants to open or save a file, program should present Open or Save dialog in that location.
As a sidenote I noticed yesterday that Sony (Sound Forge application) uses Application Data incorrectly. It creates its own Application Data! It looks like this:
Application Data
Application DataSony
Lets hope that is just the result of unescaped “” and not programmer’s intention.
In the end let me bitch about Adobe a bit because they are completely out of control:
C:Program FilesAdobe
C:Program FilesCommon FilesAdobe
C:Program FilesCommon FilesAdobe Systems Shared
C:UsersAll UsersApplication DataAdobe
C:UsersAll UsersApplication DataAdobe Systems
C:UsersAll UsersApplication DataFLEXnet
C:UsersAll UsersDocumentsAdobe PDF
C:Users<user>Application DataAdobe
C:Users<user>Application DataAdobeUM
C:Users<user>Local SettingsApplication DataAdobe
C:Users<user>My DocumentsUpdater
C:Users<user>My DocumentsUpdater5
There are few things I would add to the requirements list for “Designed for Windows” Logo:
1. No saving settings in registry — use XML file(s) in application install folder. Solves settings backup problem and registry bloat.
2. Keep all the files needed for the application to run in the application install folder. Shared files can be an exception but littering whole filesystem with files which could easily go to the same folder as in the Adobe example should be strictly forbidden.
3. Application should ask the user upon install or upon first run where they want to keep their documents.
4. Upon uninstall they should offer the user to save the settings which would be easy since they would be in a single XML file.
But why have it simple when it can be compicated and annoying…
Skype must be a really cool/important application since it creates two directories in "My Documents". Both "My Skype Contents" and "My Skype Pictures".
PingBack from http://blog.appelgren.org/2006/12/29/hilarious-the-old-new-thing-post/
My solution: don’t use the My Documents folder.
I have simply created a folder in the root of C: conveniently named "_data", which ensures that its always at the top of my tree. *I* manage the directory structure to suit MY data needs. By placing a shortcut to the folder in My Documents, I am only ever a double-click away from it using any application’s file dialog box.
The My Documents folder presents a wonderful distraction for programs that want to do things "automatically" for me.
To Simon C. Seems that EA is following the rules set down by Microsoft. See MSDN article Gaming with LUA http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_c/Gaming_with_Least_Privileged_User_Accounts.asp
Although, they are probably saving all the game files there, not just the save game, which MS does recommend to store in My Documents.
And to Igor, , point 2. You can’t write application settings to the app directory because not all users have write access there and even if they did, their settings would conflict.
Don’t forget that also VMware that offers you to save a VM in a "My virtual machines" or so. 8 GB file in My <whatever>. Ouch.
What next? SQL Server will attempt sometimes to use My Documents? oh, I meant My Databases.
(Sorry, I could’t resist…)
(About Designed for Windows 2000 Logo: if I remember well, an application was supposed to use My Documents to save user files. Otherwise, the application didn’t pass the test).
Finally someone notices this and rants about this as well ! Thanks Raymond.
Some people seem mention that Remote Desktop creates a subdirectory in My Documents (maybe the new version released recently does that), but on the Windows XP computers I administrate, it is actually even stranger since the Default.rdp file which corresponds to the Microsoft Remote Desktop Client (mstsc.exe) settings are stored in the "My Documents" folder as an hidden file.
I never understood why it was there in the first place (should definitely be in %APPDATA% or even better, in the Registry…) and why it was hidden. If they didn’t want users to see it, why not place it somewhere the user isn’t supposed to go ? (again, %APPDATA% or registry)
Even if it was done to make it easier for people to backup (man, how valuable the RemoteDesktop connection settings are anyway ? At this rate, everything should go to "My Documents"), most people don’t have hidden files shown by default so if they go to the folder, they are very likely to select everything in it and just copy it to another folder.
Depending if they do "Select all" or select each directory rooted at "My Documents" manually (most users don’t know the CTRL+A shortcut unfortunately), they are very likely to miss that file since it is hidden.
So this software can’t even pretend it was done for backup purposes as some other softwares may justify such intrusion in something which is for user documents.
With all these tools and millions of source code lines, I can understand and forgive Microsoft for sometimes messing up at some point and understand that sometimes they forget about their own guidelines, but I must admit it tends to irritate me slightly more than when Skype does it, especially when it happens on standard Windows component.
I’ve seen that a new version of this client got released so maybe it fixes this… or worsen it by creating a directory instead.
I got so fed up with "My music" being re-created all the time that I created an empty file (not directory) "My music" with modes +rhs.
A while later I found my file had been renamed to "My music.000" and the "My music" folder had yet again been recreated.
I bet someone got a raise for that feature.
@Johan Thelin: You forgot "My Skype Received Files".
Raymond – this is a rant without resolution. You are a smart guy and people respect you for your ideas yet here you rant about My Documents and the applications that pollute it, without giving us a viable alternative. Sure, I agree that the applications you listed make choices on behalf of the user, and that those choices may be poor ones (subjectively). The real point is that no one has devised a *good* way to organize user documents that doesn’t rely on the user’s well-thought-out input. We are supposed to be the experts that make these decisions so that the users *don’t* have to know so much. Get to making smart decisions already. Just suggesting “the user can create subdirectories if he wants to* is not enough. Why do you think there are so many “organizer” applications out there? (I’m thinking specifically of things like DEVONThink and Notebook on the Mac). Peace.
Contrary to what many programmers seem to believe, the people who can’t be bothered (or don’t understand how to) organize their files in sub-folders also don’t open their files by going in a file manager to "My Documents" …
They (my wife’s parents, for instance) just run Word, and click "Open" or "Save" and type a name. Word is smart enough to filter the visible files in the "Open" dialog to just those files that could have been created by the "Save" dialog and those users generally just scan through the list looking for the name.
There’s no reason to create a sub-folder for them, because they literally won’t know the difference (unless you’re so irritating as to create a sub-folder, and then default to the parent "Documents" folder). Thanks to the file type filter, they only see what they’re expecting to see, and as far as they’re concerned, the documents could be in the root directory, they just don’t care.
The only people who *do* care … are the ones you’re irritating.
The thing I find really irritating is how tedious it is to move the Documents and Settings folder after an attended install (as another poster says above, with an unattended install it is easier but who wants to go through the work of setting up an answer file for one machine).
The last time I did it I found there were around a hunndred or more registry entries that needed renaming.
Hm, I suddenly have a great idea for a new computer virus! It keeps creating subdirectories of <i>My Documents</i> named for the <a href="http://www.imdb.com/title/tt0285403/episodes">titles of <i>Scrubs</i> episodes</a>.
What d’you think?
Speaking from 20-odd years experience (insert the usual "I walked 80 miles through snow over my head to school uphill BOTH ways comment here), computing is messy business. Sure, 90% of programs can get away with simple one-file saves to MyDocuments. But we spend our lives supporting the 10% oddball programs that have a bunch of files that are "one save", like compilers, web page saves (incuding images in a subfolder) and many others. MyDocs still makes sense because it is user data to move and copy as they please, but its more accurate if they move a whole folder. So you have to coax this into them otherwise they will support call that their xyzy project is broken because they did not know to move that stray .WHAZ file or whatever. Ok oldnewthing’s point is that My Videos is not like this, and I agree, because its still single files, but hey folders makes Explorer able to apply settings, like thumbnail view, to folders that make sense. But there will always be programs that seem to mess things up, when they have a hard job to do and the developer made their best guess. Once millions use your app, perhaps you see better light. Think cars are any better? Why can’t the damn hood release be in the same place?
I’m certainly glad to see the ‘My’ prefixes going away in Vista.
However, one thing that’s always bothered me more that that is when folders get displayed in Explorer as "Bob’s Documents". There’s nothing more annoying that looking through 50 folders (sorted by name) for My Documents or My Pictures and not being able to find them because they are at the top or bottom of the list instead of where they should be next to the M’s.
At least this feature is easy to get rid of–just edit or delete the Desktop.ini file inside those directories.
I use the folder security settings to prevent creation of folders in My Documents alone by Everyone. Kind of a pain when *I* want to create a folder, but it sure beats the alternative mess.
Clarification: I have over 12582 directories and 20645 files in My Documents subdirectories created by applications; I didn’t miss the point, I just didn’t think I had to explain and belabour mine… Filename length is finite, extensions (sticking with three-letter extensions) are finite; creating a situation where collisions are inevitable is just fodder for a different oldnewthing thread. Why not rant about “My Documents” itself. Seriously, in the hierarchy “Peter RitchieMy Documents”, are files below “My Documents” not “mine”, give me a break. While we’re at it, I would have liked to be asked about “system32” (in 2006, do I care there’s a difference between 16- and 32-bit dlls?) or why there’s a “WINDOWSDownloaded Program Files” AND a “My DocumentsMy Received Files”
Is it better to ask before creating these subdirectories: probably; but we then just shift to an another annoyance like too many popups. An installation could allow the user to change these before creating them; but, seriously do we really need to be making installations MORE complicated–most don’t even work already. It’s not like the Microsoft-supplied setup creation applications actually provide a means to do this easily (they won’t even allow me to change the Start Menu folder!).
Really, if application designers queried the user for every single thing the application did, the information would get ignored (I believe that is a past oldnewthing thread or two: information overload). Then the application designer has to trust the user the make an informed decision (again, I believe this has been covered in past oldnewthing threads). (BTW–similar to Raymond’s list of subdirectories–of the 13 post-Windows-install My Documents sub-directories created by applications, only 1 of them was a non-Microsoft application, clearly this rant is facing the wrong direction).
…it’s not like creating a sub-directory in My Documents is opening a port in the firewall or something actually serious. With MRU’s and shortcuts, does anyone really roam around in My Documents: who cares?
How many issues have occurred in Windows over the years because designers trusted users to do the right thing? “My Documents” exists because Windows can’t expect each user to create they’re own sub-directory with correct permissions–is that a bad thing, of course not.
There’s tonnes of things applications and Windows does to save users from themselves, let’s hope someone doesn’t suggest these shouldn’t be taken for granted and query the user to confirm each of these actions. If you’re in a position to affect change, don’t publicly rant.
Oye!
Why the fsck does anyone save their data files on the C: drive in the first place? It is begging for trouble. How many times have you had to re-format the C: drive to re-install Windows? You did remember to backup your "Documents and Settings" directory, didn’t you?
"Documents and Settings" really should be /home … Right?
Why the fsck does anyone deal with any file or directory names containing the space character at all? It just goes against the grain on every form of file handling at the command line. You do use the command line, or should I call it a DOS box, don’t you?
Why the fsck didn’t Microsoft buy JPSoft and pick up a real command line shell? I suppose they want to discourage any use of anything resembling the command line anyway. You did install "Take Command" from JPSoft as a replacement for cmd.exe, right?
Why the fsck … Oh never mind.
It occurs to me that Windows is just for the double-digit IQ set. Just like Powerpoint, the whole concept of Windows dumbs-down computing for the masses. The brighter folks will simply work around the Windows stuff and deal with the resulting brain damage as best we can.
Good luck with your Vista lobotomy.
…"My Databases"
You think it’s funny. Access stores it’s database files in My Documents.
[It occurs to me that Windows is just for the double-digit IQ set. Just like Powerpoint, the whole concept of Windows dumbs-down computing for the masses. The brighter folks will simply work around the Windows stuff and deal with the resulting brain damage as best we can.
Good luck with your Vista lobotomy.]
I know the answer but I’m going to ask anyway: You think it’s a bad thing that computers are becoming more accessible to non-(computer scientists)?
Specifically with regards to: [Windows is just for the double-digit IQ set]
Not everyone who possesses a higher than average intelligence wants or needs /home instead of "Documents and Settings" or has any common need for a command line. A lot of them just want to start their computer, use their web browser, type a paper, download some music and turn it off.
Oh, and the only reason I’ve ever re-installed Windows is when I messed something up. I’ve never had Windows magically disintegrate without my causing it to through some form of mistake. (My favorite was moving the swap file to a "compressed partition" in Windows 3.1 — who knew you need to use the swap file when reading off a compressed partition?)
Raymond said:
“Yeesh, talk about over-engineering. Just default to My Documents. If the user saves to somewhere else, then default to that location for next time. Hey wow, that’s the default behavior of GetOpenFileName!”
I know that, but how exactly does that help to classify your documents in subfolders?
You would have to manually create a folder and navigate from My Documents to that folder and there are many applications which very stubbornly insist on opening Open/SaveAs dialogs in My Documents regardless of what was the last location you used.
For the record (from MSDN):
“However, if an application is not run for a long time, its saved selected path is discarded.”
So I again ask you how does that default behavior solve anything?
Raymond says:
“I don’t want to know what happens when there is a sharing violation on the XML file.”
Why would there be a sharing violation? Is there a sharing violation on registry key?
Each user has its own settings anyway so each user would have its own XML file too. I really don’t understand how that creates a possibility for sharing violations?
Oh and again, everyone misses the point — it is not the problem what those programs do, it is the lack of control over it.
For example Acrobat Reader setup _defragments_ its files at the end of setup using built-in Windwos defragmenter. Have I ever asked it to do so? Nope. Have I ever been offered a chance to say “No”? Nope. Do I have an option of selecting my third-party defragmenter instead of default one? Nope.
See? That is what I am talking about — lack of control. And it is My Computer.
Raymond said:
“I guess you’ve never run two copies of the same program. Lucky you.”
Aww, come on Raymond, you know better than that!
1. Most programs don’t allow multiple copies, they just bring up one which is already running or use MDI interface.
2. Most programs do not write to the settings file all the time
So again how big of a risk we have here?
And how exactly registry keys prevent that sharing violation?
Igor:
Each user has its own settings anyway so each user would have its own XML file too. I really don’t understand how that creates a possibility for sharing violations?
So, um, Igor, I guess you never used windows 3.1? It had ini files, which went everywhere and acted much like your proposed solution. In fact, this was why the guys at MS made a registry. Even with it’s tendency to eat itself in win95, it beat ini files.
Speaking of XML, why TF would you use XML? It’s an interchange format – it sucks at multiple update/fast access, which is what the registry is good at. I can see spitting regsitry info out as XML (although they have a perfectly good format already), but not storing it as one.
And to the original point, why not have a preference in windows that says how you want to store your stuff? Do that whole By app in a subdirectory with special cases if you want to add them or just dump everything in a particular folder. If you do nothing it just sticks everything in My Docs (or maybe it asks you how you like to organize your docs at install), and apps can just call an api like GetAppSpecificDefaultFolder(AppName). This allows you to decide that yeah, everything should go into a single folder, but my saved games clutter up the place, so I’ll add an exception for that.
It gets worse. Create a "My music.000" file and the directory gets recreated as My music.001. You can see where this leads.
I got interested one day and created all 1000 My Foo.### files… the My Foo directory was then created somewhere else!
I can’t remember if they start in My or not (I’m thinking not) but some Microsoft games like to shove savegames in My Documents – I know Dungeon Siege did, and I think maybe Halo too. Like anyone ever operates on the savegame files directly (well, maybe l33t hack0rs using editors on them, but they’d find them wherever they were).
I suspect there was some logic behind this, like then users would remember to back them up when upgrading/rebuilding computers, but it’s all a bit wasted because you have to go through Program Files to find all the others anyway. On the bright side, at least Halo and cohorts don’t require administrative privileges just to play a game – yes, I’m looking at you, Blizzard.
Raymond said:
“Notice that there are no sharing modes in RegOpenKeyEx”
So you want to play smart… ok:
1. Name three _widely used_ SDI applications which are often used in _multiple instances_ and which have per user settings updated regularily even if you don’t change any?
2. What happens when two instances of a same program update the same registry key?!?
I assume that the answer to #2 is “the first one gets overwritten”, right?!?
Great, that is just what user wants to happen and of course it happens transparently.
Then there is an issue of overly agressive anti-virus or anti-spyware programs preventing registry modifications which leads to inability of certain applications to remember their settings.
Then we have registry corruption (power failure, bad RAM, poorly written driver and whatnot) and program doesn’t work anymore because it is not self-contained in its folder.
If a XML file gets corrupted you restore one from backup, if registry gets corrupted it affects all installed programs in the system. You restore the program with corrupted entries but you screw all others by reverting everything you done since last registry backup.
Now tell me how can possibly registry be better? I am not against it for system use (hardware and system wide settings) — I just believe that applications should be separated.
If you still don’t understand then take fresh and empty Windows install and just add Creative drivers for Soundblaster or Audigy sound card. Note the registry size before and after. Install .Net Framework 2.0 and compare sizes again. Don’t just tell me that is a neccessity.
Cooney said:
“So, um, Igor, I guess you never used windows 3.1?”
Of course I did. Problem is that Windows 3.1 was sitting on top of DOS and it wasn’t even properly multi-tasking let alone multi-user operating system so you can’t compare that with the current situation. By the way you still have many applications that work perfectly using just .ini files, take Total Commander as an example.
Cooney said:
“why TF would you use XML? It’s an interchange format – it sucks at multiple update/fast access, which is what the registry is good at”
And I presume you change (and commit) multiple settings every 3 picoseconds while working on a document, right? Oh, grow up please.
Raymond asks:
“Is there a standardized interface to third-party defragmenters?”
Has Microsoft ever created one and enabled replacement of system provided defragmenter?
Interface as in API. The reason, as always is to make your jerb easier – if third parties use a stable interface to do things to windows, it breaks less and in simpler ways, so people like your product more and you have time to work on destabilizing your OS with DRM or whatever is on the product plan.
Igor:
Yeah right. Most users never back that stuff up. They certainly wouldn’t back up each individual ini file in all their apps.
Igor:
Problem is that Windows 3.1 was sitting on top of DOS and it wasn’t even properly multi-tasking let alone multi-user operating system so you can’t compare that with the current situation.
Sure you can – the problems with ini files are independent of win31 being a shell on top of DOS.
Igor:
The point is that, if your xml ini file is a megabyte, then every change requires you to parse a meg of xml, then write it back out, while registry access is somewhat equivalent to a CRUD operation in a database with only one table. Which would you rather live with on a terminal server?
Personally, I use Shared Documents for anything I feel My Documents isn’t fit for. Sanctioned dumpster, if you will. On my Server 2003 machine I even created a link folder to it on the desktop, because it won’t show up in My Computer in server editions (seriously, what the hell is with that). Standard subdirectories I don’t mind, I use My Pictures quite often in fact.
For backups, I just backup the whole profile directory after running a cleanup script, and excluding the non-roaming directories (and I wish Opera stored its cache in one, I really do)
Something I can’t quite figure out is how to handle applications whose "documents" are whole subdirectories (like VMware). If I were to write one, I wouldn’t know what to do
Igor, the reason you can defragment a filesystem while it’s in use without damaging it is that there’s a standard API for defragmentation. Also I think defragmenting installed files is a good idea, since they will never be modified again
From what I have seen of what Vista does with installed games, I think it is safe to assume that it does the same with other types of files.
To me, just like the user doesn’t know how the menus are organized in the code, the user should not know that there is some hierarchal file system underneath controlling where their files go. If I were to change one small thing about XP, it would be to make the My Documents folder in the start menu an expanding menu by default, and instead of making a user navigate through folders to find a saved document. (this is the same, i know, but the average user is more comfortable finding things in the Start Menu than the explorer.) Also, when prompting to open a file in an application, instead present the user with a LARGER dialog that shows ALL documents created by that user and NOTHING ELSE. Allow obvious methods of FILTERING by say Date and Subject, as well as showing THUMBNAILS of each document that are READABLE.
Abstraction is a GOOD thing.
It’s not that it’s trouble. It’s that you have to go through the registry and rename every instance of the folder you have moved. Even if you do it directly after a clean windows install there still appear to be a lot of entries to rename.
It would be so much easier if they asked you where to install Documents and Settings, if they detect more than one partition.
One other point. I do this with the whole Documents and Settings folder, so that all user data is on a seperate partition. I don’t do that with Program Files because I prefer to keep a Ghost Image of the system drive.
In general, my definition of "stuff that should be in My Documents" would be "clickable data files with an associated ‘Open’ action, for me to view my data in a document-centric way, as opposed to the ‘Start->Programs’ program-centric way".
Game saves are NOT "clickable": it’d be silly to create a savegame filetype association just for one game, and I’ve never yet seen a document-centric game savefile system. So saving to "my documents" is the wrong thing to do. A savegame is an application state, not a document. It is a setting.
But the trouble there is of course that one person’s "clickable document" is another’s data or program file. drwtsn32.log and user.dmp are a good case in point. Most people will never want to open them, but some will want to drag-drop them to attach them to a bug report (they SHOULD be stored in appdata, but there’s no way phone support could walk someone to appdata with the mouse).
Even with these boundary cases, though, Raymond is definitely correct to grumble. In my own "My Documents", I made or consented to have made only 31 of the 93 folders, 170MiB of the 1.4GiB, 300 of the 1600 files. 235 files (1.2GiB) are savegames, a further 1052 files (26MiB) are config stuff.
So by disk space (11%), file count(19%), and dir count (33%), only a minority of the data in that folder is being used for files that I would call documents, that have "open" or "edit" associations, and are "mine".
In defence of "my *", I always assumed this and "program files" have spaces so’s shortname-only programs would instantly but non-brokenly demonstrate their ineptitude. They’d function perfectly, no annoying popups, nobody’d blame MS for breaking them… but all would notice that damning "~1". For once, a perfect way could be found of dealing with poor programs, while retaining 100% back-compat.
And I’d be sorry to see "My " disaappear as a prefix for dirs made by user-hostile apps. At least with that prefix it’s easy to see and skip most of the irrelevant folders: they’re all clumped together (My Games, My Music, My PSP files, My Received Files, My Skype*). This is less annoying than those without that grouping cue (.zs4, Bluetooth, DrWatson, Dungeon Seige, Fiddler, GTA San Andreas User Files, StepMania).
Stephen Jones and anyone else who said they were having trouble moving My Documents.
The easiest way I’ve found is to use Junctions (like symlinks).
I have my whole Documents and Settings folder on another drive. When I reinstall Windows, I simply rejunction the Documents and Settings folder. One thing you do have to watch out for, make sure that before you junction you log everyone in. Otherwise when you log in for the first time it will go "oh, you already have a folder names that, I’ll make a new one".
I’d heartily recomment backing up and junctioning the entire user folder rather than just My Documents. Application Data is especially useful to keep across installs. I’ve not had to re-setup 80% of my applications wheras before I’d have to customise them all again. It also then backs up things like save game files that are found in Application Data or *shudder* My Documents.
I don’t know if junctions work across networked drives, but I’d hazard a guess at no.
http://www.microsoft.com/technet/sysinternals/FileAndDisk/Junction.mspx
<i>[Not everybody with a second partition is a geek. The computer I bought from Fry’s came with a second partition (FAT32), for example. -Raymond]</i>
But 99% of people who actually perform a Windows install are. ‘Normal’ people just use the restore disc that came with their PC.
My pet project for the holiday vacation has been writing a WPF application to view data from my code line counting tool CLC.EXE (soon to be released on Codeplex). CLC produces counts of lines, code, comments, and other statistics per file, per directory
@Ben Cooke: You could "replace" the start menu by changing the shell to progman, but that’s something of a nuclear option (and, if you’re using XP SP2 or later, you need to find a copy of progman from somewhere).
Igor wrote:
"Lets take Visual Studio 2005 as an example. It defaults to My DocumentsVisual Studio 2005".
…not on my machine.
"It’s not that it’s trouble. It’s that you have to go through the registry and rename every instance of the folder you have moved. Even if you do it directly after a clean windows install there still appear to be a lot of entries to rename."
Hence why I prefer junctioning. You do need to be able to boot into a windows other than the one your using though.
"In XP, press Win+R and type "My Documents" to get directly to the folder. This is easier in Vista, since it’s just "Documents". Also, since Vista moves the picture, video, and music folders to the root of the user directory, one can type Win+R, "pictures" to get to the relevant directory easily."
Amazingly enough – this didn’t work on my machine – it brought me to c:documents and setting<username>My documents. Which is not My Documents. I don’t blame the Run box – it’s asking the filesystem, not the registry.
There’s still much too much stuff that (rightfully or not) depends on the concepts of local versus remote, and actual drive letters. (I kinda want a more unix-like filesystem where everything is a subdir of /. – but that would break SO many programs).
Ian: There’s a simpler way to get Documents/Pictures/stuff open.
Press Win then right,down,down,enter and you’re in Documents/My documents. They are the same folder but Vista spoofs the name in some places.
I mostly prefer to use this to open command prompt. Make it the top most custom item in Start Menu, then win,down,enter opens it. Bonus points for having it always open in Administrator mode and configuring the UAC prompt to stay away.
I know perfectly well how to get into the My * directories that are on the start menu. (Generally speaking I use a mouse). I was commenting on the previous commenter’s "shortcut" that didn’t work on a system that didn’t have My docs off of c:docs & Settings. (Note, this was on an XP box – while I’m playing with Vista on an evaluation box for work, I haven’t made the plunge at home yet).
I can already see that easier access to junctions and symlinks is going to be somewhat dangerous for me – I have a nasty habit of re-grafting stuff onto the directory tree.
BTW – anyone know how to provide admin credentials to a command-line app in Vista so I can create junctions points in Prgoram Files? (Seriously)
For real amusement, create hidden files in "My Documents" called, say, "My eBooks" and anything else you want not to bother with. Some programs explode, but many others just silently fail to add crud all over your system.
I stumbled across this rant trying to rediscover a "solution" to the creation of these damned sub-directories I used a while ago in editing the registry keys to disable My eBooks, My Music, My Whatever … it works great but I’ve reloaded XP and seem to have lost it (or the MS KGB have slipped something in an update that’s mugged my Registry!?). Anyway, you guys all seem to be computer pros .. I’m not .. I’m a triple digit IQ user (who’s not exactly happy at the apparent attitude of some to their ‘customers’. Amazed no-one seems to have mentioned actually asking, heaven forbid, the users. Generally I think Raymond and those on the side of user control are exactly right with the basic premise – keep My Documents for documents not apps related crap and let the user decide what, if any, sub-directories are created. Users that don’t understand filing will blithely continue to save every single thing in the same place and those like me who are anal about these things can Word documents under "Rabbits", mp3s under "Buttermilk", PDFs under "Lollipop" or whatever else floats our boat and move on to find something else in life to get stressed about!
Seems to me that there’s a fair few programmer IT type people around still suffering from the old problem of knowing everything about how a bit of software ‘works’ but with absolutely no understanding of how the people they’re supposedly writing it for actually want and need to use it.
Now …. having probably just insulted about 30-40% of you …. I don’t suppose anyone knows the registry key I mentioned and would forgive my addition to the rant and post it for me ? Pretty please ?? :-)
In my XP "My documents I have lots of folders (18)and files (23 outside my folders) that I created. I have 5 folders that came with the computer (pictures, music, video etc) or a program made them for me (My Recieved files). Hooray. I put all my pictures (approx 5000) in my pictures (146 subfolders made by me!). All my music got put in My Music (approx 6000) and organized for me somehow. Nice! Then, one day, someone sent me a picture with MSN Messenger. Maybe it asked me where I wanted to put the picture. If I read the message I don’t remember. I know I saved it. Then afterwards – where is it? Darn, I have no idea. I looked in ‘My documents’ and there was a new folder I didn’t recognize "My recieved files". I looked in there and there was my picture. Hooray! That was easy. Just had to move it into the right picture folder
I like having all my documents in my documents. I lknow they’re in there somewhere and I know you guys have sorted some organisational stuff which really isn’t too confusing. But you guys sure do get hot under the collar about it. Gosh. Jolly good show, stopping some craziness that I haven’t yet suffered from. That’s darn cute.
Mind, I wouldn’t dare to delete one of the folders that is already there or put there automatically by a program. But on the whole I don’t have that many, so I can chill.
My Credentials:
I’m a click-happy girl. right click and everything. I can open the folder-view on my XP computer and I can click around it to move between folders. Yeah! I can change where I ‘save’ something to after I’ve clicked on the ‘Save’ button and I’ve guessed that ‘open’ and ‘run’ in a dialog seem to mean the same thing.
I don’t play computer games (ooOOOOoooo, I’m a freak!!) or have Visual Studio, will it help me edit my pictures? should I get it?
AdobeStockPhotos
GpsGate
ICQ Lite
Klient Logs
My Games
My Photo
My Skype Content
My Skype Pictures
My Skype Received Files
My Skype Wallpapers
My Virtual Machines
NFS Carbon
Visual Studio 2005
Visual Studio Projects
Skype beat’s them all :D
Was suprised, that under My Games found 3 games, that saves stuff in the seperated directory :)
How about a non-leaky abstraction, one that the users are familiar with. Let’s imagine ‘UserStuffManager’ that presents an underlying filesystem as a simple library, where the user’s files are stored in folders pretty much the same as now, but the open/save dialogs will open the manager and the user may filter by/provide the needed information (the app that produced them, the user that saved them, their user selected/created type/tag (for example letter/list/recipe/invoice etc, similar to gmail labels), name, date of creation, maybe a checkbox not to be included for roaming/backup etc). The user’s files would be managed almost as easy as savegames or a music library, would have some (minimal, I’m not suggesting a sql server here) metadata and would hide the filesystem from the user (the majority of the users wouldn’t know about/mess with the hierachy underneath). Note that each application would have a (customizable) main folder in which to save everything of interest to the user, the manager wouldn’t be used for the other files or downloaded stuff, there would be a simple tool to backup/restore the user’s data, also filtering as above…
PingBack from http://theprotagonist.co.uk/2007/01/14/home-directories/
PingBack from http://www.gno.se/blog/?p=26
PingBack from http://alwayscrashing.org/2007/01/14/home-directories/
PingBack from http://blogs.msdn.com/oldnewthing/archive/2008/01/14/7103585.aspx