[Rd] Question about Unix file paths

Gabor Grothendieck ggrothendieck at myway.com
Tue Nov 25 13:27:46 MET 2003

Perhaps the dir= and pattern= arguments could be combined so that 
its not necessary to for list.files to paste them together:

  list.files("C:/a*.txt", glob=T)

Date: Tue, 25 Nov 2003 07:14:49 -0500 
From: Duncan Murdoch <dmurdoch at pair.com>
To: Prof Brian Ripley <ripley at stats.ox.ac.uk> 
Cc: <r-devel at stat.math.ethz.ch> 
Subject: Re: [Rd] Question about Unix file paths 

On Tue, 25 Nov 2003 07:35:57 +0000 (GMT), you wrote:

>I think there are some potential issues with doubling separators and final
>separators on dirs. On Unix file systems /part1//part2 and /path/to/dir/
>are valid. However, file systems on Unix may not be Unix file systems:
>examples are earlier MacOS systems on MacOS X and mounted Windows and 
>Novell systems on Linux. I would not want to assume that all of these
>combinations worked.

This is something that R could not do reliably by itself. The code I
committed checks the final character in the path, and if it's "/", "\"
or ":" doesn't add a path separator. However, both "C:" and "C:\" are
valid directory names in standard Unix file systems, so the test would
do the wrong thing there.

I think people who mount strange file systems will just have to expect
occasional glitches. The only way I can see around this is to add
another argument to list.files() to say whether to add a path
separator, but it would be so rarely used that it doesn't seem to be
worth the effort.

Duncan Murdoch

R-devel at stat.math.ethz.ch mailing list

More information about the R-devel mailing list