[Haskell-cafe] File path programme
Jules Bean
jules at jellybean.co.uk
Tue Jan 25 06:58:16 EST 2005
On 25 Jan 2005, at 11:32, Krasimir Angelov wrote:
>> splitFileName "/foo/bar" ==> ("/foo","bar")
>> splitFileName "/foo//bar" ==> ("/foo/","bar")
>> (definitely a bug)
>
> Is "/foo//bar" valid file path and what does "//" mean?
>
>> pathParents "/foo///bar" ==> ["/","/foo","/foo","/foo","/foo/bar"]
>
> Again what does "///" mean?
>
Under implementations of unix that I have played with, extra // are
ignored. So "/foo//bar" == "/foo/bar" == "/foo///bar". I have no idea
if this is in some standard.
My guess is that it is made so that programs which concatenate paths
clumsily can cope OK, so you can do "/foo" ++ "/" ++ "bar" or "/foo/"
++ "/" ++ "bar" and get the same results: i.e. it is an extension of
the notion that "/foo/" and "/foo" refer to the same directory.
(Except, apparently, in the presence of symbolic links... or so I have
some vague memory)
Jules
More information about the Haskell-Cafe
mailing list