list.files changed in 2.7.0
Hi, I've verified in "R version 2.8.1 Patched (2008-12-22 r47296)" using both Rterm and Rgui, and list.files(path="C:") list the files that are in the current working directory of C: and this *can* be changed by setwd(), that is, it does not just depend on which directory you started R in. The command list.files(path="C:/") always lists the files under the root of C:. /Henrik
On Mon, Jan 26, 2009 at 7:48 AM, <davidr at rhotrading.com> wrote:
Hmm. I get exactly the same files and directories with "C:" and "C:/",
except for the double slashes now.
Previously the two calls to list.files gave exactly the same results.
My current directory (getwd()) is not C:. I'm puzzled by your output.
-- David
-----Original Message-----
From: henrik.bengtsson at gmail.com [mailto:henrik.bengtsson at gmail.com] On
Behalf Of Henrik Bengtsson
Sent: Friday, January 23, 2009 8:36 PM
To: David Reiner <davidr at rhotrading.com>
Cc: r-help at r-project.org
Subject: Re: [R] list.files changed in 2.7.0
And I'm not sure that list.files("C:", full.names=TRUE) returns
correct pathnames, because it lists the files in the current directory
(of C:), not the root of C:. There is a difference between C: and C:/,
and you should get:
list.files("C:", full.names=TRUE)
[1] "C:aFile.txt"
[2] "C:anotherFile.txt"
list.files("C:/", full.names=TRUE)
[1] "C:/Documents and Settings"
[2] "C:/Program Files"
Now we get:
list.files("C:", full.names=TRUE)
[1] "C:/aFile.txt"
[2] "C:/anotherFile.txt"
list.files("C:/", full.names=TRUE)
[1] "C://Documents and Settings"
[2] "C://Program Files"
This causes
pathnames <- list.files("C:", full.names=TRUE);
file.exists(pathnames);
to return all FALSE (not expected), whereas,
pathnames <- list.files("C:");
file.exists(pathnames);
returns all TRUE (expected).
So, that extract slash seems to be the cause.
My $.02
/Henrik
On Fri, Jan 23, 2009 at 2:42 PM, <davidr at rhotrading.com> wrote:
I just noticed a change in the behavior of list.files from 2.6.1pat to 2.7.0 (I noticed it in 2.8.1 and traced back.) Previously, if the directory ended with a slash, and full.names=TRUE, the names returned had a single slash at the end of the directory, but now there are two. I noticed since I was getting a list of certain files and then grepping in the list for a full name formed with a single slash. (The double slash would be OK if I were opening the file since the OS treats double slash in a path the same as a single slash.) I searched through the release notes, etc., and couldn't find this announced. Try
list.files("C:", full.names=TRUE)
list.files("C:/", full.names=TRUE)
Is there any chance that this could be put back to the single slash behavior? (This was on Windows XP.) Thanks, David L. Reiner
______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.