[R] check for new files in a given directory
Martin Maechler
maechler at stat.math.ethz.ch
Thu Jul 30 11:27:57 CEST 2009
>>>>> William Dunlap <wdunlap at tibco.com>
>>>>> on Tue, 28 Jul 2009 08:50:29 -0700 writes:
>> -----Original Message-----
>> From: r-help-bounces at r-project.org
>> [mailto:r-help-bounces at r-project.org] On Behalf Of Barry Rowlingson
>> Sent: Tuesday, July 28, 2009 6:41 AM
>> To: ted.harding at manchester.ac.uk
>> Cc: r-help at r-project.org; Andreas Posch
>> Subject: Re: [R] check for new files in a given directory
>>
>> On Tue, Jul 28, 2009 at 12:36 PM, Ted
>> Harding<Ted.Harding at manchester.ac.uk> wrote:
>>
>> > However, this got me looking into '?list.files, and I see there
>> > (R version 2.9.0 (2009-04-17)):
>> >
>> > recursive: logical. Should the listing recurse into directories?
>> >
>> > But:
>> >
>> > Directories are included only if 'recursive = FALSE'.
>> >
>> > Surely the latter is the wrong way round, and should be
>> >
>> > Directories are included only if 'recursive = TRUE'.
>> >
>>
>> by 'included' it means 'returned'. If you do 'recursive=TRUE' it
>> scans recursively for files and only files. If you do
>> "recursive=FALSE" it returns files and directories in the specified
>> directory.
>>
>> Makes it tricky to figure out a complete directory tree since empty
>> directories won't appear at all if recursive=TRUE. You'd have to
>> implement your own recursive search based on
>> list.files(d,recursive=FALSE) and then testing for directoriness....
>>
>> Sucky, unless there's a better way...
>>
>> Barry
> S+'s dir() and list.files() functions have an extra argument called "type"
> that let you say if you are interested in only "files" (non-directories) or
> directories or want all directory entries listed in the
> output. Its default value is set to match the R behavior
> function(...,
> recursive=FALSE,
> type = if(recursive) c("files", "directories", "all") else c("all", "files", "directories"))
> {
> type <- match.arg(type)
> ...
> }
> I put it in when I was looking for all directories named 'R' in a collection of
> packages and bundles and I didn't want to use the platform-dependent
> system() function. Should this argument be added to R's dir() and
> list.files() functions?
Yes, I think it "should" -- exactly because I also like to work
without system() here.
I will not implement it myself though, as I nowadays build R
only for Linux {or intermittently, one flavor of Solaris},
and from recent "experience" with file.access() {not working
reliably on some Windows-version x file-system combination},
this doesn't seem easy to get right.
I think R core would be very grateful for patches (particularly
if from someone as qualfied as you).
Martin Maechler, ETH Zurich
> Bill Dunlap
> TIBCO Software Inc - Spotfire Division
> wdunlap tibco.com
More information about the R-help
mailing list