From cstrato at aon.at  Tue Mar 27 19:44:56 2007
From: cstrato at aon.at (cstrato)
Date: Tue, 27 Mar 2007 19:44:56 +0200
Subject: [Rd] Limitation of dirname() and basename()
In-Reply-To: <Pine.LNX.4.64.0703270744580.9277@gannet.stats.ox.ac.uk>
References: <460807A7.5030405@aon.at>
	<Pine.LNX.4.64.0703270744580.9277@gannet.stats.ox.ac.uk>
Message-ID: <46095818.9080703@aon.at>

1. I did read the help file.
2. I have my own workaround, using e.g. 
   file.info("/my/path/")[,"isdir"]
3. This was a suggestion.
4. If you agree with me that "/my/path/" is a path, then both
   "dirname()" and "dirname" give an incorrect answer.
5. Maybe, you can give me a logical reason (besides a
   historical reason) why this should be the way it is.


Prof Brian Ripley wrote:
> 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
>> _._._._._._._._._._._._._._._._
>



[Rd] Limitation of dirname() and basename()
cstrato