Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

What are the reasons some programs install (by default or even requirement) in C:/ directly, and not, like most, into the C:/Program Files/ folder?

Also, why is it so common that drivers are unzipped here? I've seen a lot of Intel, Nvidia, ATI, and Xerox folders in C:/-drives, even though to me it makes no sense at all to default there, and not onto the desktop or other user-specific folders. The files should not be required system-wide, as they are only temporary.

Thanks!

Edit: This question is not about specific software, but rather the reasons why it makes sense to deviate from the usual way. I thought it could have something to do with servers that should be kept running, but this is just a hunch based on no facts at all, why shouldn't a server program be running from C:/Program Files/, as long as all permissions are set. Same for possibly system-wide required files such as driver installation files.

Obviously this concerns Windows only.

share|improve this question

migrated from programmers.stackexchange.com Aug 6 '13 at 18:47

This question came from our site for professional programmers interested in conceptual questions about software development.

3  
Software installation is a major part of the development cycle, and if there are specific reasons one would deploy to areas outside of Program Files its certainly something developers may want to know. So I'd say its generally on topic. –  GrandmasterB Aug 6 '13 at 18:24

6 Answers 6

up vote 9 down vote accepted

There is no real technical reason to install something in a folder directly at c:\ or to unzip a driver in c:.
It is even against the Windows software design guides as published by Microsoft.

But:
In case the user needs to be instructed to manually run something in that folder it is convenient to be able to give the user simple instructions.
Like: Open "My Computer", open C:, open [folder] and then open program "setup".
By forcing the path to be fixed like this, it is consistent for all users, which makes life much easier for technical support.
This is very often the case for drivers-downloads. All major manufacturers seem to do it like that.

I have worked 1st-line helpdesk on occasion.
You won't believe how many users download something, unzip it, get a phone-call in between and 15 minutes later can't remember where on their harddisk they put the unzipped files.
Then they call the helpdesk or technical support.
If you are the person handling those calls you very quickly start to appreciate the logic of putting these files directly in C:\

share|improve this answer
1  
Furthermore "C:\Program Files" is both locale and processor architecture (x86 vs. x64) dependent, whereas "C:\" is not. "% ProgramFiles%" is locale independent, but tends to confuse semi-savvy users, who don't think it looks like a real path, or don't get the percentage signs right. On 64-bit systems, it will still be the wrong path for 32-bit applications. –  abstrask Aug 8 '13 at 21:38

What are the reasons some programs install (by default or even requirement) in C:/ directly, and not, like most, into the C:/Program Files/ folder?

Some developers don't follow standard conventions because they're either unaware or too lazy to do things "right." Many amateur developers will also hard-code paths into their software and/or installers rather than querying the environment (e.g., %TEMP%, %APPDATA%, %PROGRAMFILES%).

Also, why is it so common that drivers are unzipped here? I've seen a lot of Intel, Nvidia, ATI, and Xerox folders in C:/-drives, even though to me it makes no sense at all to default there, and not onto the desktop or other user-specific folders. The files should not be required system-wide, as they are only temporary.

As Tonny suggested, this is partly to simplify tech support, but it's also for your own convenience. When you extract the driver files to a location that's easy to find and accessible to all users, it's also easy for the system to locate the files again if you need to reinstall the drivers. Unfortunately, most vendors do not clean up old files, so you can end up with gigabytes of old driver packages that will never be used again. In some cases it may be more appropriate to extract them to %TEMP% or to the "All Users" account, and some vendors do exactly that.

share|improve this answer

Although 'most' software and configuration files can handle long directory paths, mixed capitalization, spaces and 'nonstandard' characters, they don't always and tripping up on this in the middle of your work-flow can be a minor hassle..

That Microsoft moved the Users folder to the root directory for Vista and 7 probably is a good indication of how many people prefer the root directory (default "c:") in practice.

share|improve this answer

You state that this concerns Windows only, but the software may be ported to/from other operating systems. Also, there may be differences between Windows versions, e.g. some translated versions of Windows also have this folder name translated, and the user can also change the location (e.g. instead of "C:\Program Files" I used "P:\" for a while). This can all be detected by the software, but it's easier to use a fixed location. Also in the case of drivers it could be necessary to know where the files are at a time that this information is not available from the OS.

share|improve this answer

Some older programs (DOS era, Win 3.1) could not accept spaces or "long" names in the path where they are opened from. This is pretty rare these days though.

Installers are supposed to get settings about the system being installed onto. These settings are supposed to include the location of Program Files directory among other details. Legitimate programs are packaged in installers that hook up to this info and keep track if you change from the defaults they offer.

On the other hand, drivers are designed to be handled by the operating system (Device Manager->Update Drivers) - if they were inside an installer the Device Manager would not be able to access them to install them. They are not flexible about where you put them.

At the consumer level, smart phones and tablets really challenge the idea that these should be end user concerns.

share|improve this answer

Some programs malfunction when they exist in a path with spaces (i.e. "Program Files"), which is why they are installed to the root of C:.

However, I'd bet that many programmers were lazy and just decided to plop their program into C:\ by default, just out of convenience.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.