请问有什么简单的方法如何允许 R Shiny 应用程序的用户(本地,而不是服务器上)从计算机中选择一个目录,然后输出路径?我找不到简单的方法,例如fileInput选择文件。我希望用户能够在整个PC上搜索文件夹,然后选择该文件夹,并且该文件夹的路径将显示在Shiny应用程序中,例如
C:\users\Jane\folder. 在下面的答案中,我只能搜索当前工作目录中的文件夹,而不是整个电脑,并且文件夹的路径不会显示在 Shiny 应用程序中。
你可以考虑一下shinyFiles套餐。
在服务器端您使用
shinyDirChoose(input, id = 'folder', ...),然后可以通过 访问所选文件夹input$folder。
可重现的例子:
library(shiny)
library(shinyFiles)
shinyApp(
shinyUI(bootstrapPage(
shinyDirButton('folder', 'Select a folder', 'Please select a folder', FALSE)
)),
shinyServer(function(input, output) {
shinyDirChoose(input, 'folder', roots=c(wd='.'), filetypes=c('', 'txt'))
observe({
print(input$folder)
})
})
)
Run Code Online (Sandbox Code Playgroud)
有些人询问如何以不同的方式选择目录。您可以通过更改规范来做到这一点,roots如下所示。
library(shiny)
library(shinyFiles)
ui <- fluidPage(
shinyDirButton('folder', 'Select a folder', 'Please select a folder', FALSE)
)
server <- function(input, output){
volumes = getVolumes() # this makes the directory at the base of your computer.
observe({
shinyDirChoose(input, 'folder', roots=volumes, filetypes=c('', 'txt'))
print(input$folder)
})
}
shinyApp(ui=ui, server=server)
Run Code Online (Sandbox Code Playgroud)