[R] tkfilefind in tcltk on Windows2000

Uwe Ligges ligges at statistik.uni-dortmund.de
Fri Sep 14 14:13:55 CEST 2001

Jonathan Marchini wrote:
> Hi,
> The tkfilefind demo in the tcltk package doesn't seem to work for me in
> Windows2000.
> The demo script uses tkfilefind(".") which doesn't display the parent
> directory so you can't browse around the whole drive.

Right, it uses the working directory ... and works fine on WinNT4.

> Using tkfilefind() (which uses the default path getwd()) doesn't seem to
> work for me at all.

Which is the same here ...
What you want is:

> I also tried tkfilefind("/") which worked fine but then using
> > a<-tkfilefind("/")
> > a
> [1] "//jm2.null.mc.img"
> > library(AnalyzeFMRI)
> > f.analyze.file.summary(a)
> causes R to crash i.e. using "//jm2.null.mc.img" as a path to a file
> doesn't seem to work.

That's a bug in package AnalyzeFMRI, which doesn't check the existance
of the file.
  file.exists(a) # should give FALSE !!!

What you want is: 

> I found a way round it using
> path<-getwd()
> if(.Platform$OS.type == "windows") {
> path<-paste(substring(getwd(),1,2),Platform()$file.sep,sep="")
> }
> tkfilefind(path)
> but this only allows you to access files on the drive of the working
> directory.

What about 
  tkfilefind("c:/"), tkfilefind("d:/"), tkfilefind("e:/"), ... ???

> I also found a problem selecting a file when the path has spaces. IIt
> seems to return a vector of characters
> > tkfilefind("C:/")
> [1] "C:/Program/Files" "/R/rw1031/FAQ"

That's hard to fix if you also want to be able to make multiple

> I was wondering if there was an easier way around these problems? I find
> the tkfilefind function very useful when writing small GUI's that
> read/write data from files.

It is much easier to use file.choose() on Windows!!!

Uwe Ligges
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch

More information about the R-help mailing list