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.

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
add comment

1 Answer

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
add comment

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.