如何在R Shiny中选择目录并输出所选目录

时间:2019-05-01 19:27:27

标签: r shiny

请问有什么简单的方法允许R Shiny应用程序的用户(本地,不在服务器上)从计算机中选择目录,然后输出路径?我找不到诸如fileInput这样的简单方法来选择文件。 我希望用户能够在整个PC上搜索文件夹,然后选择该文件夹,并且该文件夹的路径将显示在Shiny应用程序中,例如 C:\users\Jane\folder。在下面的答案中,我只能在当前工作目录中搜索文件夹,而不是整个PC,并且在Shiny应用程序中不会显示该文件夹的路径。

2 个答案:

答案 0 :(得分:1)

您可以考虑使用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)
    })
  })
)

答案 1 :(得分:0)

有些人在问如何选择不同的目录。您可以按照下面的步骤通过更改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)