# Is it good practice to create directories in the root of your C: drive?

For example, should I create a 'development' folder in my C: drive, where things like my personal (testing) apache server, php, python, etc. could be installed into?

If not, where should I put these things?

Edit:

What do I do with software that cannot be installed, like KeePass, CPU-Z?

-

Personally, I like to keep all my data files on a different drive (or partition) than my OS. That way, everything I have to back up is all in one place. The only thing I keep on the OS partition are the files required to run applications. That way, if I need to blow away my OS, all my data files are unaffected and I can easily back up my data partition separately. If you mix data and OS files on the same drive or partition, it becomes more complex.

-

I am starting to think that the best spot to put your personal files, if you are running Windows, is in the My Documents folder. Put everything there, and should you need to blow away the OS for regular spring cleaning, you still only have a single root folder (My Documents) to play with. The other advantage of this approach is that a large number of applications by default start you off somewhere under here when they ask you to save something. Also the file open & save dialogs always have the shortcut at the left as well. It beats always having to go to My Computer and then navigate down to D: or whatever other drive you are using.

-
-1 You would still lose all of your data if you had to fully reinstall the OS. You can always use shortcuts to speed up navigation from the my docs folder to another partition or disk anyway! –  Lee Aug 20 '09 at 1:36
You can remap My Documents to your data partition so you have the best of both worlds. –  JP Alioto Aug 20 '09 at 1:44
Sorry for the down vote but I've been looking for a reason to get the badge ;) –  Lee Aug 20 '09 at 1:52
This might be a good idea if the dang path didn't have spaces built into it which requires you to quote all the paths for files under it! –  JohnFx Aug 20 '09 at 5:40
My Documents is overrun by programs putting stuff there that shouldn't, so if you don't mind a lot of clutter with your files, by all means use My Documents. –  Runscope API Tools Aug 20 '09 at 5:51

I agree with the sentiment of keeping the data on a separate drive or partition. If, however, you only have one, putting a directory in the root isn't a bad place for it. It's easy to navigate to and find to back up. Don't create a whole lot of them though or it will get cluttered.

Another option, in Vista or Windows 7 is to create the directory in your user folder.

-

Personally, I always create C:\Programs as a root for such things. The simple command-line utilities often go in C:\Programs\Bin which I add to the system path. The rest go in their own subdirectories, e.g. I installed MinGW in C:\Programs\MinGW and MSYS in C:\Programs\MSYS. A key rule I follow in the \Programs tree is to never put a space in a file name unless some distribution's tarball or zip file did it. That makes life easier at the command prompt as many, many years of experience with Unix ought to have taught Microsoft.

I try to follow the rule that the only way to write to C:\Program Files is through a real installer. If more applications had followed that rule sooner, life in Windows would have been so much simpler.

For data, I'm torn on the My Documents thing. I advise all of my non-geek relatives to use it, and to create lots of folders, or better, trees of folders for their project work in there. That simplifies the backup conversation quite a bit because if all they remember to ever back up is the My Documents folder (well, and Shared Documents, and the other user's documents too), then they've caught most of the critical personal data.

For my own personal use, I have too many years of habits that lead me to do things like C:\Customers\ThisClient and so forth to switch to a pure My Documents lifestyle...

-

I only put things right under C:/ if I need to access them from the command line, since it makes for less typing. Otherwise I put everything somewhere in my user profile (c:\users\ in Vista), so it's all in one place and it's easy to keep it backed up.

-

Here are few guidelines I follow:

• As others have noted, you should never keep your data on C: drive. Best move your My Documents folder to another drive/partition as soon as possible after reinstalling Windows (just edit Target field in My Documents' properties).
• Programs you install should obviously go to C:\Program Files. If needed, copy some examples found in program's folder to My Documents subfolder, so you have a starting point for your own projects.
• Non-installing (portable) programs should go to another drive/partition in a folder named Utilities or something similar. Add that folder to Favorites in Windows Explorer or whatever browser you are using.
• If you find it easier to store projects all over the drive, you can still create symbolic links to folders in My Documents, so all relevant data is neatly packed for backup.

Your C: drive is left to program files and operating system. Once all all needed programs are in place, you will find you need to defrag C: drive less often.

-

No, It's best to keep your data separate from your operating system, on an external hard drive for example. As JP has highlighted this allows you to reinstall your OS as many times as you like without losing any personal data.

-
Keeping applications on an external drive can have some serious performance implications, especially for development. –  MDMarra Aug 20 '09 at 2:51
Also, I've experienced higher drive failure rates with externals. –  Brian Knoblauch Aug 20 '09 at 11:33
Using an external drive was just an example however if performance is really an issue during development (can't say I've had a problem hosting all of my personal repositories on an external drive) you can just as easily use another partition or drive for your data. The concept of separating your data from your OS still stands. –  Lee Aug 20 '09 at 12:27
Ah sorry, yes I can see how hosting applications would cause performance issues. Applications do not fall under the category of personal data and so should really be kept with the OS on an internal drive. –  Lee Aug 20 '09 at 12:29

Sure. When you install IIS, the default location for the Default Website is c:\inetpub. Obviously in a production environment you probably don't want it there, but for a dev box it's ok.

Many people are suggesting that if you keep your applications on a separate drive/partition you can salvage your data after a reinstall, but in reality you'll have to reinstall any applications anyway.

-

Really, do what feels best for you. Whatever rules you come up with, there will always be something that doesn't fit into those rules. Like some test script from some other developer, that assumes you're using c:\dev\ rather than c:\development\, or assumes you have Apache installed in c:\apache while you might like to include a version number like c:\apache-2.2.13\.

It's also perfectly fine to keep data on the C: drive. When feeling that data should be kept away from the OS, then simply don't put it in the Windows folder. If C: and D: are just multiple partitions on the same hard drive, then chances are that both are toast when the drive fails. But even if they aren't: you need backups anyhow. (On Linux and Mac, everything is in a single root folder, even when using multiple disks. People work fine on such systems.)

When feeling the need to re-install the OS every now and then (why?), then afterwards you'll probably still need to fix references in the Registry to make software that was preserved on some other disk run again. Or need to change preferences of all sorts of programs, to use a non-default location for things. Removable drives can mess up things when not unplugged correctly, so unless you need to take your work home (not to be confused with the backup), or unless you've simply run out of space on your internal drives, then I see no real advantage there either.

-