26

Note about the suggested duplicate: I'm not looking for a global change of the installs location. I want to move the programs on a per program base to different locations.


Some software installers don't let you choose where the program will be installed, which I find pretty annoying.

Is there a way which lets you move the already installed program to another location, preferably making the necessary changes in the Registry automatically?

update following the answers so far:
I don't want to access the program from a different location, I want it to be physically there. So, while I appreciate your suggestions, links won't do.

  • 1
    If the SW is annoyingly bad enough to not allow you to choose an install location, it might also be annoyingly bad enough to have some "C:\" path hard-coded somewhere. The only safe enough way to fool such SW is something like Jonno's answer, where it still "thinks" it is installed in its default location. It may happen though that it is fooled "too much" e.g. regarding available space on "its" drive. – Hagen von Eitzen Dec 28 '15 at 13:46
  • 1
    Exact duplicate of Forcing programs to be installed to another drive – AStopher Dec 29 '15 at 10:17
  • @Downvoter Why the downvote? Because it's a duplicate? I explained why it isn't. – Joris Groosman Dec 29 '15 at 10:31
  • @JorisGroosman You can use symlinks on the same drive, it doesn't matter where the files are located- you can even do it on a per-program basis. You can move the program folder to another location on your drive (or another drive entirely), then symlink it so that the original location points to the new location. This means that your question is a duplicate. – AStopher Dec 29 '15 at 10:41
  • 3
    Totally not a duplicate. And in theory there may be a built in way. Closevotes feel bogus to me. – Journeyman Geek Dec 29 '15 at 12:14
44

If you're not too worried about the actual folder structure existing, you can move the folder anywhere you want and use a directory symbolic link to point to the new location (for example, if you have limited space on your system drive). The typical command line for this would be

mklink /d C:\Path\Of\Original\Folder D:\Path\Of\New\Folder

I am not aware of any tools that will actually move the folders and re-route and links and registry keys, as there are so many programs with constantly updating versions it would be very difficult to maintain.

EDIT: A request was made to add how to correctly delete the directory symbolic link. You do need to be careful with this as the wrong command could wipe the folder you have linked to.

The best methods are either:

  • Delete the directory symbolic link through Windows Explorer. This will keep the target folder intact and only remove the symbolic link.

or

  • Use the command rmdir C:\Path\To\Symbolic\Link

Do not use the del command on the location of your directory symbolic link, as the del command is used to remove files. Doing this will follow the path to the destination directory, wiping out any files matching your criteria!

  • 5
    This requires that the partitions be NTFS (which they probably are). FAT32 does not support symbolic links. – Sydius Dec 27 '15 at 23:49
10

Building on Jonno's answer, If space is your concern, the symlink is your friend. there is a piece of software from back in the days when steam didn't let you install games outside the steam installation folder called steammover that automates the symlink creation, you point it to the folders containing programs you want moved (e.g. C:/Program Files) and a destination (e.g. D:/programs) and you can move specific files.

7

Moving/Installing those applications to another location can have unintended consequences.

There can be an entire set of assumptions the developers use that break if you move the program. For example, a application that installs itself on the user profile would expect full write access to it's install folder, or even worse use relative paths based of where it expects to be installed.

So the easiest solution (like others have said) is to just use a junction point to move the files wile letting the application thinking it's still in it's originally installed location (it will leave a "ghost" folder behind).

Anything more then that would require a per application analysis to see if anything breaks from moving it around, there's tools to help that analysis like the Windows ADK (Assessment and Deployment Kit) but it's not automated.

5

The easiest way I've found to do this is to use Link Shell Extension. It's an explorer shell extension that lets you manage symbolic and hard links without dropping to the command line.

In your case, you'd locate the folder that the installer forced you to use, move the files to the location you want them, right click the new location and choose "Pick Link Source", then go back to the original location and choose "Drop Link As..." and pick Junction (or Symbolic Link, though I usually use "Junction" because some applications will not follow the Symbolic Link).

I've used it for many of these kinds of scenarios -- often an application will impose a forced location for config and cache files (like %appdata%\MyProgram). On an SSD, if these files are written to constantly, it can reduce the life of that drive so I'll use this to move those cache files to a spindle drive, reducing performance slightly, but reducing wear on the SSD.

1

There is no universally guaranteed with to do this. There are multiple ways that different programs, particularly programs written in different languages, can check where the executable file is stored. Things like Symlinks may commonly be effective, but always know that there may be some exceptions that will break. If you move a file (such as the executable, but possibly some other file), some programs may expect to find a file in a specific location, and may behave differently (perhaps especially likely to just break entirely) if things are not as the program expects.

This is true for multiple operating systems.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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