You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Shiny中获取用户选择的文件夹路径(非文件路径)

Shiny获取用户选择文件夹路径实现方案

你当前代码使用的是shinyFiles包的文件选择配套逻辑,仅支持获取文件路径,要获取文件夹路径需要替换为包内置的目录选择专用组件,以下是可直接运行的完整代码:

library(shiny)
library(shinyFiles)

ui <- fluidPage(
  shinyDirButton(
    "Btn_GetDir", 
    "选择文件夹",
    title = "请选择目标文件夹:", 
    multiple = FALSE,
    buttonType = "default", 
    class = NULL
  ),
  textOutput("txt_dir")     
)

server <- function(input, output, session){
  volumes = getVolumes()
  observe({  
    shinyDirChoose(input, "Btn_GetDir", roots = volumes, session = session)
    
    if(!is.null(input$Btn_GetDir)){
      dir_selected <- parseDirPath(volumes, input$Btn_GetDir)
      output$txt_dir <- renderText(as.character(dir_selected))
    }
  })
}
shinyApp(ui = ui, server = server)

核心改动点

  • UI组件替换:将原文件选择按钮shinyFilesButton替换为目录选择专用按钮shinyDirButton
  • 监听逻辑替换:将原文件选择监听函数shinyFileChoose替换为目录选择监听函数shinyDirChoose
  • 解析逻辑替换:将原文件路径解析函数parseFilePaths替换为目录专用解析函数parseDirPath,运行后即可直接输出选中文件夹的完整绝对路径

说明:函数getVolumes()会自动识别当前系统所有可访问的存储位置,Windows环境下会自动枚举所有本地盘符,macOS/Linux环境下会自动识别根目录及外接挂载存储,无需额外做路径配置。

内容的提问来源于stack exchange,提问作者María Agustina Conrrero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 06:24:29