How can I create a right click menu item to manipulate a junction point?
As I am using a SSD but it is limited in size I want to be able to use junction points to remap files and directories to my HDD, this would work ideal if I could create a shell extension for it that does this.
The ideal behavior would be to right click a directory or junction point and have an option
"Manipulate junction point" in which I can perform the following actions:
Create: For a directory, move the directory to a location I specify and replace it by a junction point.
(Dir) C:\Example turns into (JP) C:\Example --> D:\Example-
Swap: For a junction point, I want to swap the junction point with its location.
(JP) C:\Example --> (Dir) D:\Example turns into (Dir) C:\Example <-- (JP) D:\ExampleThis means it would remove the junction point, move the data and place a reverse junction point.
Remove: For a junction point, I want to remove it and move the directory back.
(JP) C:\Example --> (Dir) D:\Example turns into (Dir) C:\Example
My most important questions:
- What approach should I take to do this? Script? Bash? Executable?
- How do I create the menu entry?
Less important questions:
- Does there exist such a solution already?
- Are there better commands or API calls for checking and manipulating junction points?
I already know of Microsoft's mklink
and Sysinternals junction
.
Solution 1:
Since you asked if such solutions exist already, have you taken a look at Junction Link Magic or Link Shell Extension?
Junction Link Magic allows creation, modification, and removal of junction points. It is freeware, and does support Windows 7.
Link Shell Extension also provides the same functionality, and is also freeware. It also supports Windows 7.
UPDATE: The original site for Junction Link Magic is 404'ing now. I've substituted a Softpedia link for those who still want to install JLM.
Solution 2:
I just use MKLINK
which is built into Windows 7. You'll end up writing batch files I guess, but it's not hard to use.