elsdoerfer.name
index » ntfslink
about
NTFS Link is a set of Windows Shell Extensions which hook into Explorer, providing extended functionality for creating and using hard links, as well as junction points on NTFS file systems. As neither hard links nor junctions are available on FAT, it will really only work on NTFS - version 5 or greater to be exact, which basically means Windows 2000 and above.

Please note that this was originally started as a demo meant to showcase the creation of shell extensions in Delphi, and that development has been moved to Source Forge. Please look there for updates and new versions of the tool.

hard links? junctions? what are those things anyway?
See Wikipedia 1 and Wikipedia 2.
what ntfslink does, plus, we all love some pictures
NTFS Link makes creating a link or junction via the Windows Explorer as easy as copying a file. It also adds a couple of features to improve their usability, e.g. by highlighting links via icon overlays, and making sure junctions are deleted correctly.

NTFS Link Screenshot NTFS Link Screenshot NTFS Link Screenshot

Although there are a couple of different ways to actually create a link using this extension, the option you'll probably going to end up using most is what you see in the leftmost picture above. Just drag&drop a file (for a hard link) or a folder (for a junction) from one location to another, using the right mouse button, and click on the new item in the menu that just appeared next to your mouse cursor.

download
Available localizations that are not (yet) included in the official distribution. If you want to translate the tool into your own or any other language, see the faq below for more info.
faq
What exactly is the difference between a hard link and a junction?
See this article on ShellShocked.

So, how can I create links using the Windows Explorer?
NTFS Link currently offers three different ways to do this:

  1. The one mostly used is hidden in the drag&drop menu - I already mentioned it above.
  2. You can also use the New menu. Right-click on an empty space somewhere in any explorer window or on the Desktop, and choose "New". You'll see two items that NTFS Link created there, titled "NTFS Hardlink" and "NTFS Junction Point".
  3. A third feature allows you to convert an empty folder into a junction. Just right-click on it, and choose "NTFS Link | Link Folder" from the menu.
Do I have to expect any issues when deleting links?
For hard links, no, I'm not aware of any. However, Windows Explorer, at the time of this writing (XP SP2), has no idea how to handle junction points. Normally, if you delete a junction, Explorer treats it like any folder and deletes the complete content of the target directory as well. To fix this, NTFS Link intercepts the deletion of folders, and makes sure that junctions are correctly processed. If you want to be on the safe side, right-click on the junction point and choose "NTFS Link | Unlink Folder" before deleting it.

However, please be careful with other tools that might not be aware of junctions either and will operate within the junction target. In most cases though, this is actually what you want and exactly the reason why who are using a junction to begin with.

What does "junction tracking" in the configuration utility mean?
If you delete, move or rename the target folder of a junction, the junction will stop working. As there is no build-in functionality in Windows to find the junctions pointing to a folder, NTFS Link tries to keep track of that itself (however, please note that if you create a junction using some other external utility, NTFS Link will of course not know about it).

There are two different ways to store this information: The preferred solution is "NTFS streams" - basically, the extension attaches additional data(-streams) to the directories you create links to. Now the problem here is that streams are not supported on FAT partitions - however, it is perfectly possible to create a junction ON a NTFS partition pointing TO a folder on a FAT partition. To work around that issue, NTFS Link can alternatively use the registry to save the necessary tracking data. However, in that case the information will not be available from within a different (or new) Windows installation.

Can you add other languages in the future?
Yes, but only with your help. Here's what you need to do:

  • Download the latest template file.
  • Translate it, using a tool such as PoEdit or PoTranslator.
  • Compile it into a .mo-file (the programs mentioned above can do this), and copy the .mo to {NTFSLinkDirectory}\locale\xx\LC_MESSAGES\default.mo to test (and use it), with xx being the language code, e.g. "fr", "en".
    NTFS Link automatically tries to use the UI language of your Windows system. However, you can force a particular language by adding a new string value named "Language" to the HKEY_LOCAL_MACHINE\SOFTWARE\elsdoerfer.net\NTFS Link\Config key in the registry. Use the code of the language you want to use as the value data.
  • Post it to the patches tracker on SourceForge, and send me a short note that you did. I will then publish it on this page, and it will be included future NTFS Link packages.
I found a bug / I have a feature request. What do I do?
Please post them to the appropriate tracker on Source Forge.
imprint - Design by vacant