[R] Bug in list.files(full.names=T)
Martin Maechler
m@ech|er @end|ng |rom @t@t@m@th@ethz@ch
Mon Dec 20 09:46:23 CET 2021
>>>>> Mario Reutter
>>>>> on Sat, 18 Dec 2021 15:55:37 +0100 writes:
> Dear everybody,
> I'm a researcher in the field of psychology and a
> passionate R user. After having updated to the newest
> version, I experienced a problem with list.files() if the
> parameter full.names is set to TRUE. A path separator "/"
> is now always appended to path in the output even if path
> %>% endsWith("/"). This breaks backwards compatibility in
> case path ends with a path separator. The problem occurred
> somewhere between R version 3.6.1 (2019-07-05) and 4.1.2
> (2021-11-01).
> Example:
>>> list.files("C:/Data/", full.names=T)
> C:/Data//file.csv
> Expected behavior: Either a path separator should never be
> appended in accordance with the documentation: "full.names
> a logical value. If TRUE, the directory path is prepended
> to the file names to give a relative file path." Or it
> could only be appended if path doesn't already end with a
> path separator.
This expected behavior has never been documented AFAIK.
I tried R 3.6.1 on Linux and it already behaved like that: If
you append a path separator it is kept in addition to the new
one even though it's not needed:
> list.files("/tmp", "^[abc]", full.names = TRUE)
[1] "/tmp/check_proc__localuser"
> list.files("/tmp/", "^[abc]", full.names = TRUE)
[1] "/tmp//check_proc__localuser"
Why would one ever *add* a final unneeded path separator, unless
one wanted it?
Note that the default is ".", not "./" ..
I think the change you see made R-for-Windows compatible
to the rest of the univeRse where list.files() aka dir() always
behaved like this.
I agree that ideally this would have been mentioned in some of
the NEWS; maybe it *is* mentioned in the rw-faw (R for Windows
FAQ) or other R for Windows news.. ?
> My question would now be if this warrants a bug report?
I don't think so.
As I'm saying above, I think this has rather been a bug fix,
making R more universal / less platform-dependent.
Last but not least: You'd ideally update more than every 2.5 years...
Best,
Martin Maechler
> And if you agree, could someone issue the report since I'm
> not a member on Bugzilla?
> Thank you and best regards, Mario Reutter
More information about the R-help
mailing list