我具有使用file.choose()
选择文件的功能。当我在脚本中调用它时,我希望它打开要在其中选择文件的特定目录。函数内部有一个循环,我需要选择一堆文件。第一次在工作目录中打开它,这是可以预见的。我将setwd()
放入其中以将所需的目录作为工作目录,以便在那里选择文件。但是,当对话框下次打开时,它又是旧的工作目录。但是下一次是我需要的目录。如果我选择其他文件夹,则它的工作原理相同-下次是旧目录,然后是新目录。我写了一个简短的函数来重现行为:
foo <- function() {
files <- NULL
for (i in c(1,2,3,4,5)) {
x <- file.choose()
y <- dirname(x)
setwd(y)
print(y)
print(getwd())
}
}
只需调用此函数,然后尝试选择不同或相同目录中的文件。您可以看到目录名称是新的,getwd()
表示已设置新的工作目录,但在上一个目录中将打开下一个文件选择对话框。
请记住,我需要使用file.choose()函数,因为它在Windows和Unix之类的无头操作系统上均可工作。
当我不使用setwd()
时,它始终是旧的工作目录。