Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Windows lets you store current user images in a custom folder, %userprofile%\pictures, which appears as "My Pictures" under the picture library in the explorer left pane. I have My Pictures on another partition, and I want the %userprofile%\pictures path to point to this location.

What I've tried is to delete or rename "My Pictures" to "default" and hide it, then use mklink, like this:

mklink /D %userprofile%\pictures %anotherdir%/pictures

This at first seems to work okay, but after a few minutes, the left pane no longer displays the long name "My Pictures", and it then replaces it with "pictures".

I also tried with linkd, and got the same result.

How can I achieve this without breaking the custom name?

share|improve this question

The following seemed to work for me; you will probably want to back up the folder in question before trying this (I'll be curious to know whether it consistently works for you):

Install Junction Link Tools ("JLT--" it's freeware, and I've used it myself a lot with great results, and I have no affiliation with the creator of it), which you can find at:

http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html

Once that is installed, follow these steps:

  • Right-click your "My Pictures" subfolder (in your User folder), and click "Cut."
  • Navigate to your desired new folder location (I tested this on a different drive/partition, and it worked), right-click an empty space, and click "Paste."
  • Right-click this newly moved folder, then click "Pick Link Source."
  • Navigate back to your User folder (the original location of the "My Pictures" sub-folder, right-click an empty space, and left-click "Drop As -> Junction."

Warning: automated backup tools have differing approaches as to whether they even read or what they do with Junction Links.

Incidentally, and an important note: you can also relocate a folder which has Junctions within it (such as a User folder, or ProgramData, or any program folder--I have moved all these with no problems, myself, e.g. logged in as Administrator*), but, in that case, you will want to use JLTs' "Smart Copy" feature.

Why?

"Smart Copy" properly re-targets any copied Junctions within a folder, e.g.

"C:\Users\SR\My Pictures" [A Junction which points to "C:\Users\SR\Pictures"]
"C:\Users\SR\Application Data" [A Junction which points to "C:\Users\SR\AppData"]
<Many other Junctions under C:\Users\SR>

-- to the new destination path (or some other path on the target drive--if the original Junctions (insanely) point somewhere outside the copied path!), and updates the copied Junctions so that they point to the new path, e.g.

"G:\UserJunctions\SR\My Pictures" [A Junction to "D:\UserJunctions\SR\Pictures"]
"G:\UserJunctions\SR\Application Data" [A Junction to "D:\UserJunctions\SR\AppData"]
<Many other Junctions under C:\UserJunctions\SR>

I don't know what JLT technically does in the background which may be different from your approach. Fortunately I don't need to know--it just works :)

*There are very rare exceptions to this working perfectly. I have seen rare console applications misbehave/not know what to do when data which they seek traverses a Junction Link.

share|improve this answer
    
thanks you r_alex_hall. I followed your instructions step by step, and unfortunately I got the same issue. Look at my screenshots after the junction was created. Before windows break special names and after a short delay. imageshack.us/g/1/10295947 Maybe the special name "my pictures" is bound to the old Pictures folder ID linked? So we have to rebind it to the new virtual folder. – skyrail Aug 28 '13 at 19:13

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .