ned Productions – SymLink

by . Last updated .

SymLink is a windows utility to create and delete symbolic links on NTFS 5 volumes. That's right folks, you can now map any directory in Windows 2000 and later to any other directory or drive just like Unix has permitted for decades!

Obvious uses include moving applications out of c: to free up space but having them all continue to appear in c:\program files or even making the cumbersome drive letter system appear to vanish. This latter use is actually what SymLink was written for as /Storage in the kernel namespace is configured this way (see Tornado project homepage for more information).

Other uses are providing more than one name or more than one location for exactly the same data (hence saving disc space plus maintenance costs). FTP or web site admins will like this ability a lot.

WARNING PRE-V1.02 DATA LOSS: I discovered this after uploading SymLink v1.01 to a number of locations, so I hope it reaches its message from here: Do NOT delete a symbolic link which points to a directory or volume using Explorer as normal (as the help file says) as doing do will cause data loss (as I just found out by losing my BeOS installation :( ). What happens is your data appears to be unmolested until you empty the Recycle Bin, at which stage all linked to data is destroyed. To prevent this, enter your Recycle Bin, restore the deleted links and unlink them using the red box. DATA LOST BY EMPTYING THE RECYCLE BIN IS GONE FOREVER. Sorry about that if it's happened to you, but I did say we were using undocumented facilities.

v1.02 sets the system attribute on the symbolic link, hence attempting to delete it using Explorer will cause a warning message.

Note that as of v0.86, TnFOX contains support for symbolic links as well as shell links so if you want implementation code, see FXWinJunctionPoint.

Downloads:

SymLink v1.02 is available under the GNU General Public Licence:

Note that you need a copy of Qt/Windows (http://www.trolltech.com/) to compile the program.

Small FAQ:

  1. Can you make a command line version of SymLink? Or add command line switches to SymLink?
    While a future version may have command line switch operation, it seems wasteful for a 2Mb executable. In the end, I wrote SymLink mainly because I needed a GUI app to do the business. Besides, sysinternals.com are already there: Try here.
  2. Why do I get an "Access Denied" message when I try deleting folders within a symbolically linked directory? (thanks to Ben Garside for this)
    Ah, this is Explorer being weird again. Note that you can delete folders fine in the view of the actual data, but not within the linked version. This results from Explorer trying to rename the folder from its current location into the recycle bin. This works when the data lives on the same physical partition, but fails in our unique situation.

    There are two workarounds: (i) delete the folder in its real location, not in the linked location or (ii) hold down shift when choosing the delete menu option. Note the latter bypasses the recycle bin, thus permanently deleting the folder (ie; it cannot be thence recovered from the recycle bin).

    Note normal applications don't suffer from this problem. Only Explorer.

Contact the webmaster: Niall Douglas @ webmaster2<at symbol>nedprod.com (Last updated: 2002-07-12 00:00:00 +0000 UTC)