[Rd] Limitation of dirname() and basename()
cstrato at aon.at
Tue Mar 27 21:05:09 CEST 2007
Gabor Grothendieck wrote:
> On 3/27/07, cstrato <cstrato at aon.at> wrote:
>> Hin-Tak Leung wrote:
>> > cstrato wrote:
>> >> 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.
>> > Can you just read "man 3 dirname" and "man 1 dirname" on any unix box?
>> > Isn't "historical reason" - this is how dirname works for the last
>> > 25(?) years, some people will be *very* upset if it behaves
>> > differently now -
>> > a good enough reason?
>> > HTL
>> A 25 year old mistake is no reason for R to duplicate this mistake.
> It would be possible to have the way it works controlled by an argument
> if backward compatibility is the issue:
> dirname("/my/path/", extended = TRUE)
> or it would be possible to have a second command:
Thank you, I like your first suggestion very much, it is very elegant.
(dirname2() is also a possibility but not so elegant.)
More information about the R-devel