views:

428

answers:

5

The prompt says that if I install the software into a directory with spaces:

the rebuild build tool used by the D Shared Source System will fail to build

and that I will be

forced to reinstall in a different location

However, I don't like random things in my C:\ drive. D, IMO, belongs in Program Files with PHP and MinGW and so on. How can I get it here?

If it matters, I'm using the Easy D installer package.

A: 

You could install it into C:\Program Files, and then use the subst command to make it appear as a new drive letter:

subst x: "c:\program files\d"
Greg Hewgill
I'll look into that more tomorrow, but it looks promising. Thanks.
Thomas Owens
+2  A: 

You can also use NTFS Link to create junction points (symlinks for all intents and purposes) and hard links on NTFS file systems. The functionality is built into the NTFS drivers, but an interface was never implemented for it, presumably to avoid things like recursive directory structures (endless virus scan loops anyone?). This package exposes an interface to this functionality.

I'd then create a symlink from C:\Program Files\ to something like C:\ProgramFiles\, hence disposing with the problematic space. This means that anything added to one directory will be added to the other, because both directories point to the same place on disk.

More info on NTFS Junction Points.

Info on NTFS symlinks (Vista only, but doesn't need NTFS Link to be installed.)

Matthew Scharley
A: 

I actually use a "c:\Programs" for situations such as this - quite a few applications don't work well in directories with spaces in them.

It doesn't cause confusion since it's different enough from "c:\Program Files" - earlier attempts used "c:\ProgramFiles" (without the space) but this was too similar.

paxdiablo
Perhaps merging my solution with yours is a good idea. I can see your point of view with the naming structure, but symlinking it really does make alot of difference with the whole confusion thing, because no matter where you go, you get the same thing anyway.
Matthew Scharley
Sure, go ahead and merge. I'm not here to gather karma so I'd prefer answers to be merged so that the best answer is produced and hopefully rises to the top. You'd still have to ensure the path didn't have spaces for these 'problematic' programs but that should be easy with CMD files.
paxdiablo
+1  A: 

You could try using the old DOS 8.3 name for the Program Files directory, although this solution is implementation- and locale-dependent, and thus somewhat deprecated. On most US English systems, the 8.3 name of the C:\Program Files directory is C:\PROGRA~1. So, instead of installing to "C:\Program Files\dmd", you'd install to "C:\PROGRA~1\dmd". Hopefully, the configuration files for the misbehaving programs won't know the difference.

crosstalk
A: 

I have a C:\Dev folder on my machine for things like this. That way you only have one folder on the main directory and it stays unclutered.

Slapout