I believe file.choose() remembers the last choice, and repeats that location the next time you call it. This is true when it is called at top level or from within a function.

The first time you call it in a session, it will default to the current working directory, but not after that.

Front ends are allowed to replace the underlying function, so that may depend on which front end you are using. I'm talking about R.app on a Mac.

Duncan Murdoch

On 2024-12-18 10:32 a.m., J C Nash wrote:
I've been working on a small personal project that needs to select files for 
manipulation from
various directories and move them around in planned ways. file.choose() is a 
nice way to select
files. However, I've noticed that if file.choose() is called within a function, 
it is the
directory from which that calling function has been invoked that is displayed 
by file.choose().

This is not altered if I setwd() within that function. Have I misunderstood 
something or is this
an infelicity of file.choose(). sessionInfo() gives my system as
R version 4.4.2 (2024-10-31)
Platform: x86_64-pc-linux-gnu
Running under: Linux Mint 22

I've a small example script. It actually helps to create nd1 and nd2 and give 
them some dummy
files before testing.

Suggestions welcome.

John Nash


# fcdir.R -- show directory being used by function that calls file choose
cpath<-getwd()
nd1<-paste0(cpath,"/nd1")
nd2<-paste0(cpath,"/nd2")
dir.create(nd1)
dir.create(nd2)

myfc<-function(){
    cat("myfc working in ",getwd(),"\n")
    val<-file.choose()
    val
}
myfcd<-function(adir){
    setwd(adir)
    cat("in myfcd, getwd() =", getwd(),"\n")
    val<-file.choose()
    val
}

print(getwd())
one<-myfc()
cat("one=",one,"\n")
setwd("nd1")
print(getwd())
two<-myfc() # This opens file.choose() in nd1
cat("two=",two,"\n")
setwd("..")
print(getwd())
three<-myfcd("nd2") # But this does not
cat("three=",three,"\n")

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to