From ripley at stats.ox.ac.uk  Tue Mar 27 08:50:50 2007
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Tue, 27 Mar 2007 07:50:50 +0100 (BST)
Subject: [Rd] Limitation of dirname() and basename()
In-Reply-To: <460807A7.5030405@aon.at>
References: <460807A7.5030405@aon.at>
Message-ID: <Pine.LNX.4.64.0703270744580.9277@gannet.stats.ox.ac.uk>

These functions work as they should: did you not read the help page which 
explicitly tells you what happens in this case?

The Unix originals work in the same way:

gannet% dirname /my/path/
/my

Please DO study the R posting guide and do the homework requesting of you 
before posting.

On Mon, 26 Mar 2007, cstrato wrote:

> Dear all,
>
> I have already twice encountered a case which I consider a limitation of
> dirname() and basename().
>
> In my functions I have a parameter "outfile" which e.g. tells where a file
> should be stored. Usually "outfile" is of the form:
> oufile = "/my/path/myname.txt"
>
> > outfile <- "/my/path/myname.txt"
> > dirname(outfile)
> [1] "/my/path"
> > basename(outfile)
> [1] "myname.txt"
>
> However, in addition I want to be able to define the path only, while
> creating the name "myname.txt" automatically.
> Sorrowly, I get the following:
>
> > outfile <- "/my/path/"
> > dirname(outfile)
> [1] "/my"
> > basename(outfile)
> [1] "path"
>
> It would be great if dirname() and basename() could recognize:
> dirname("/my/path/")      = /my/path/
> basename(""/my/path/")  = ""
> i.e. they should be able to recognize a trailing "/".

Not according to the documentation.

>
> Best regards
> Christian
> _._._._._._._._._._._._._._._._
> C.h.i.s.t.i.a.n S.t.r.a.t.o.w.a
> V.i.e.n.n.a       A.u.s.t.r.i.a
> _._._._._._._._._._._._._._._._

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



[Rd] Limitation of dirname() and basename()
Prof Brian Ripley