Just recently discovered XnView/XnViewMP and even though still learning how to use have a very favorable opinion of this tool. At the same time I'm fairly new to digital image processing and still in the process of trying to develop effective work-flow methods. However, something that seems to be most obvious is that individual image files, which are often quite sizable, need to be organized in such a way that they belong in different sets/collections or categories if you prefer. The folder structure (i.e., tree organization style) of file systems is pretty lacking for this purpose. However, some file systems do have features that could could be extremely useful if they could be incorporated in software with good usability features such as XnView/XnViewMP.

The hard-link is one such feature that looks like it could be very useful for organizing digital image files. This is a feature that works on various file systems supported by different operating system environments. I'm more familiar with Windows but have worked on Linux enough to suspect that they share a basic problem. That is creation and management of hard-links requires use of the command line interface which is extremely unfriendly for anyone working with a large number of files. Commands like "MkLink" and "FSutil" on Windows or "LN" on Linux are used for this purpose. On Windows there is a set of utilities referred to as "System Internals" which contains a command called "FindLinks" which allows all of the links associated with the same file to be identified. Of course there are also APIs available for programmatically utilizing hard-links.

Incorporating support for hard-links into the graphical user interface (GUI) of a file browser like XnViewMP would allow this feature to be exploited by end users doing actual work rather than being reserved for system administration purposes. In the case of digital image files the idea of allowing a single instance of file (i.e., image) to be referenced from multiple folders/directories would be extremely useful. In fact, it could be said that such is essential and many image handling/management programs have invented their own methods of doing this. The problem with those solutions is that they only work within the context of the application that created them. By using hard-links all of the software running on a system that uses a specific file system can obtain the benefits.

For example, if you want to create a compressed archive (e.g., .zip, .tar.bz, etc) of all of the files in a folder/directory that would work just as it does now. Likewise, uploading all of the files in a folder/directory would work just it does now. However, the difference is that a particular file can be contained in multiple folders/directories.

For those not familiar with hard links it is worth pointing that they already exist and have been there for a very long time. The only thing being advocated here is facilitating their use. It is the case that they only exist on certain types of file systems. For Windows, I'm pretty sure that means, NTFS but on Linux and Mac (OSX) there are several.