Proposal for std.path replacement

Lutger Blijdestijn lutger.blijdestijn at gmail.com
Mon Mar 7 00:28:08 PST 2011


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" <jmdavisProg at gmx.com> wrote in message
>> >> news:mailman.2280.1299459971.4748.digitalmars-d at 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


More information about the Digitalmars-d mailing list