R 如何从输入$获取路径。。或输出$。。并使用它列出.file文件,然后复制/剪切这些文件

R 如何从输入$获取路径。。或输出$。。并使用它列出.file文件,然后复制/剪切这些文件,r,shiny,R,Shiny,我正在学习。我想制作一个简单的应用程序,允许用户输入动态路径。然后,应用程序应列出文件夹A中的csv文件,然后将它们从文件夹A复制到工作目录中的文件夹B。然后应用程序使用外部exe程序在文件夹B中执行一些操作。之后,文件夹将从B中剪切结果文件.txt并将其复制到A中 我的应用程序的结构如下,我还附上了一张图片。代码中的注释解释了该问题 我想列出文本框项目中显示的.filespath=路径,pattern=.csv以下代码可用于浏览特定csv文件的任何目录,读取该文件并显示其内容 library(

我正在学习。我想制作一个简单的应用程序,允许用户输入动态路径。然后,应用程序应列出文件夹A中的csv文件,然后将它们从文件夹A复制到工作目录中的文件夹B。然后应用程序使用外部exe程序在文件夹B中执行一些操作。之后,文件夹将从B中剪切结果文件.txt并将其复制到A中

我的应用程序的结构如下,我还附上了一张图片。代码中的注释解释了该问题


我想列出文本框项目中显示的.filespath=路径,pattern=.csv

以下代码可用于浏览特定csv文件的任何目录,读取该文件并显示其内容

library(shiny)

# Define UI
ui <- pageWithSidebar(

  # App title ----
  headerPanel("Open a File and Show Contents"),

  # Sidebar panel for inputs ----
  sidebarPanel(
    label="Data Source",fileInput("fileName", "File Name",accept=c(".csv"))),

  # Main panel for displaying outputs ----
  mainPanel(
    tableOutput(outputId = "table")
  )
)

# Define server logic
server <- function(input, output) {

  inputData <- reactive ({
    if (is.null(input$fileName)) return(NULL)
    inFile <- input$fileName
    conInFile <- file(inFile$datapath,open='read')
    inData <- read.csv(conInFile,stringsAsFactors = FALSE)
    close (conInFile)
  return (inData)
  })

  output$table <- renderTable ({
    inData <- inputData()
    if (length(inData) > 0) inData
  })
}

shinyApp(ui, server)

由于闪亮的应用程序设计为在web浏览器中运行,因此出于安全原因,您受到web浏览器允许的文件访问类型的限制。您是否假设此应用程序将仅在某人的计算机上本地运行?是的,该应用程序将在某人的计算机上本地运行
library(shiny)

# Define UI
ui <- pageWithSidebar(

  # App title ----
  headerPanel("Open a File and Show Contents"),

  # Sidebar panel for inputs ----
  sidebarPanel(
    label="Data Source",fileInput("fileName", "File Name",accept=c(".csv"))),

  # Main panel for displaying outputs ----
  mainPanel(
    tableOutput(outputId = "table")
  )
)

# Define server logic
server <- function(input, output) {

  inputData <- reactive ({
    if (is.null(input$fileName)) return(NULL)
    inFile <- input$fileName
    conInFile <- file(inFile$datapath,open='read')
    inData <- read.csv(conInFile,stringsAsFactors = FALSE)
    close (conInFile)
  return (inData)
  })

  output$table <- renderTable ({
    inData <- inputData()
    if (length(inData) > 0) inData
  })
}

shinyApp(ui, server)