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

R shinyFiles包Windows系统目录选择异常:无法查看D盘文件夹

解决shinyFiles在Windows系统无法访问盘符的问题

问题出在shinyDirChoose的roots参数配置上:Mac/Linux系统的根目录是/,但Windows系统的文件系统以盘符(如C:、D:)作为根,你原代码里的roots = c(wd = "/", home = "~")在Windows下无法识别盘符,导致找不到D盘。

修改方案

根据操作系统动态配置roots参数,自动适配Windows的盘符:

library(shiny)
library(shinyFiles)

ui <- shinyUI(bootstrapPage(
  shinyDirButton(id = 'folder', label = 'Folder select', title = 'Select a folder'),
  verbatimTextOutput('filepaths')
))

server <- function(input, output){
  # 根据系统配置根目录
  if(Sys.info()["sysname"] == "Windows"){
    # 获取Windows所有可用盘符
    drives <- gsub("/", "", Sys.glob("?:/"))
    roots <- setNames(as.list(drives), drives)
  } else {
    # Mac/Linux保持原有配置
    roots <- c(wd = "/", home = "~")
  }
  
  shinyFiles::shinyDirChoose(input, id = "folder", roots = roots)
  output$filepaths <- renderPrint(input$folder)
}

shinyApp(ui=ui, server=server)

关键说明

  • Sys.glob("?:/")会扫描Windows系统中所有存在的盘符(比如C:/、D:/),再处理成shinyFiles需要的格式。
  • 通过Sys.info()["sysname"]判断当前系统,实现跨系统兼容,Mac/Linux环境下仍保持原有行为。
  • 修改后在Windows系统中打开目录选择器,就能看到所有可用盘符,包括D盘,选择后可正常输出路径信息。

内容的提问来源于stack exchange,提问作者Wang

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 15:01:03