Jonathan M Davis wrote: > On Sunday 06 March 2011 22:51:55 Christopher Nicholson-Sauls wrote: >> On 03/07/11 00:24, Jonathan M Davis wrote: >> > On Sunday 06 March 2011 22:09:22 Nick Sabalausky wrote: >> >> "Jonathan M Davis" <jmdavisp...@gmx.com> wrote in message >> >> news:mailman.2280.1299459971.4748.digitalmar...@puremagic.com... >> >> >> >>> This reminds me. I should look into mime types one of these days to >> >>> see what the >> >>> appropriate way (if any) would be to put support for them in Phobos. >> >>> It would be >> >>> nice to not have to go by extension for the few programs that I have >> >>> which have >> >>> to worry about file type. >> >> >> >> I'm no unix expert, but my understanding is that mime types in the >> >> filesystem don't even exist at all, and that what it *really* does is >> >> use some complex black-box-ish algorithm that takes into account the >> >> first few bytes of the file, the extention, the exec flag, and >> >> god-knows-what-else to determine what type of file it is. Contrary to >> >> how people keep making it sound, mime type is *not* the determining >> >> factor (and cannot possibly be), but rather nothing more than the way >> >> the *result* of all that analysis is represented. >> > >> > I thought that the first few bytes of the file _were_ the mime type. >> > Certainly, from what I've seen, extension has _no_ effect on most >> > programs. Konqueror certainly acts like it does everything by mime type >> > - file associations are set that way. >> > >> > - Jonathan M Davis >> >> As someone who uses hex editors quite a bit (resorting these days to >> using Okteta mainly), I can tell you I have yet to see any file's mime >> embedded at the beginning, nor have I seen it in any headers/nodes when >> scanning raw. Doesn't mean it's impossible of course, and certain file >> systems certainly might do this[1] but I haven't seen it yet[2]. >> >> You are quite right, though, that extension doesn't matter at all, >> except in certain corner cases. Even then, they are reasonable and >> predictable things -- like SO's having the right extension. Considering >> the posix convention of "hiding" files/directories by starting the name >> with a dot, it'd be hard to rely on extensions in any naive way anyhow. >> ;) >> >> -- Chris N-S >> >> [1] I'd just about expect the filesystem of BeOS/Haiku to do so, or >> something similar to it at least. >> >> [2] Also not saying I wouldn't want to see it, necessarily. Done right, >> it'd be a damn nifty thing. > > I've never studied mime types, so I don't know much about them. It's just > that it was my understanding the the first few bytes in a file indicated > its mime type. If that isn't the case, I have no idea how you determine > the mime type of a file or what's involved in doing so. I _would_, > however, like to have a way to get a file's mime type in D, so one of > these days, I'll likely be looking into the matter. > > - Jonathan M Davis
A good place to start is likely freedesktop.org, which maintains specifications, libraries and utilities aimed at enhancing interoperability between desktop systems. This is the page about mime types: http://freedesktop.org/wiki/Specifications/shared-mime-info-spec