Skip to content

Overview

Dijji edited this page Nov 3, 2017 · 1 revision

In windows XP, Explorer could see and edit metadata (for example comment or tags) for any type of file. In Vista and later, this has been possible only for certain types of file, such as Office documents, JPEGs and MP3s. It is pretty clear that Microsoft originally intended to ship a broader capability. What this package does is just wire up pieces that are already there: the fact that the core functionality is delivered by one 17K DLL (64-bit, release build) and some registry settings tells you how close Microsoft got. So perhaps I had better begin by explaining why Microsoft didn't ship this feature.

In XP, the metadata was held in a central store. This has obvious weaknesses when it comes to doing things like moving files around without losing the metadata. So when NTFS was designed, they included a mechanism that allows metadata to be stored together with a file in the file system (the alternate streams of our title). This meant that when a file was moved its metadata went with it. However, in scenarios such as e-mailing a document, or zipping it, or moving it to a FAT file system, the metadata was still lost. So, somewhere around Vista, a decision was taken that metadata would be supported only where it was held in the file itself, and not in an associated storage, so that it could never be lost. This had the advantage that metadata always works and no user is ever surprised, but the drawback that it was only available for file formats that have well-defined locations for metadata, such as Office documents, JPEG is and MP3s. Support is obviously also format specific, so there is at the moment no support for PDF metadata, for instance. Worse, metadata could never be made available for file formats that have no standard place to put it, such as text files.

What the software delivered here does is to connect up Explorer with the originally intended support for storing metadata as properties in NTFS in alternate streams in files. If programs had tag lines, then this one’s would be ‘Meta late than never’. But there is no fix for the original problem that caused this feature not to be shipped; for example you will still lose the metadata when you e-mail the file. Personally, I think that's fine: a feature that is very useful even if I have to be aware of its limitations is okay by me. However, I have also included a mitigation. You can export the metadata to a separate XML file, and import it again to reapply it to the original file elsewhere (or indeed to a different file). So, for example, you can e-mail the metadata with a file as a separate attachment. The final element of the package is a file association manager. This is useful because Explorer displays metadata based on the file’s extension. It would be possible to turn on alternate stream metadata for all file types, but this would interfere with the presentation of metadata for the file types where metadata is already supported. Therefore, I have created an association manager to allow you to turn on alternate stream metadata only for specific file types, as many as desired.

Because the software implements standard interfaces and stores standard properties in a standard way, existing code can be used for programmatic access to the metadata (see DSOFile), and the metadata is also picked up by Windows search.