Proposal for std.path replacement

Jonathan M Davis jmdavisProg at gmx.com
Sun Mar 6 23:08:02 PST 2011


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


More information about the Digitalmars-d mailing list