2017-12-30 5 views
0

Ich muss den ausgewählten Ordner für Shiny-Benutzer anzeigen, und ich fragte hier, wie man das macht (Display selected folder path in Shiny). Es funktioniert, aber jetzt kann ich nicht herausfinden, wie der Standardordner (zum Beispiel das aktuelle Verzeichnis) angezeigt wird, bevor die Auswahl getroffen wurde.shinyFiles Ordnerauswahl: Anzeige des Standardordners

Ich kann nur an ein bedingtes Panel denken, das Text anzeigt, wenn der Ordner nicht ausgewählt wurde. Aber ich denke, es sollte einen besseren Weg geben, dies zu tun. Vielen Dank!

Antwort

1

Conerning "jenseits" Anzeigen Sie die Datenweg Variable in einem reactiveValue retten könnte und das Arbeitsverzeichnis als Standard festgelegt:

global <- reactiveValues(datapath = getwd())

Und die App:

library(shiny) 
library(shinyFiles) 

ui <- fluidPage(# Application title 
    mainPanel(
    shinyDirButton("dir", "Input directory", "Upload"), 
    verbatimTextOutput("dir", placeholder = TRUE) 
)) 

server <- function(input, output) { 
    shinyDirChoose(
    input, 
    'dir', 
    roots = c(home = '~'), 
    filetypes = c('', 'txt', 'bigWig', "tsv", "csv", "bw") 
) 

    global <- reactiveValues(datapath = getwd()) 

    dir <- reactive(input$dir) 

    output$dir <- renderText({ 
     global$datapath 
    }) 

    observeEvent(ignoreNULL = TRUE, 
       eventExpr = { 
       input$dir 
       }, 
       handlerExpr = { 
       home <- normalizePath("~") 
       global$datapath <- 
        file.path(home, paste(unlist(dir()$path[-1]), collapse = .Platform$file.sep)) 
       }) 
} 

# Run the application 
shinyApp(ui = ui, server = server) 
+0

Vielen Dank! Es ist eigentlich nicht nur zum Anzeigen, ich meinte es ist Standardpfad und Benutzer kann es ändern. Ok, ich werde über reactiveValues ​​() lesen, danke! – kintany

+0

ah ok :) Ich habe einen Schnitt gemacht. – BigDataScientist