This is my implementation for libsharedmime. It reads the Shared Mime Info database and returns you the MIME-TYPE of a file. freedesktop make this database freely available, but they don't seem to be distributing a library to read it anymore (It's no where in their CVS that I can find).

It is different to the freedesktop version in the following ways:

To install the package firstly you need the Shared Mime data files. Which you can get from here. Then download and unpack libsharedmime and:

% make
# make install
0.5 [Alpha]

  • Added code to check for a text file if the content lookup fails, if it matches it gets a 'text/plain' type.
  • Stopped the content lookup being performed on directories.
  • Fixed a bug in the magic matching code that caused valid matches to fail. This means that some files will now return the correct mime type as opposed to a default "not found" type.
0.4 [Alpha]
0.3 [Alpha]
0.2 [Alpha]
0.1 [Alpha]