--- title: "File Dialogs" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{File Dialogs} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r setup, include=FALSE} knitr::opts_chunk$set(eval = FALSE) ``` Using the `rstudioapi` package, you can request input from the user with various dialogs. The `selectFile()` and `selectDirectory()` APIs allow you to request the name of an existing or non-existing path on the system. ```{r} # request the path to an existing .csv file on disk path <- rstudioapi::selectFile(caption = "Select CSV File", filter = "CSV Files (*.csv)", existing = TRUE) # now, you could read the data using e.g. 'readr::read_csv()' data <- readr::read_csv(path) # request a file path (e.g. where you would like to save a new file) target <- rstudioapi::selectFile(caption = "Save File", label = "Save", existing = FALSE) # save data to the path provided by the user saveRDS(data, file = target) ``` Use `rstudioapi::askForPassword()` to request a password, or other credentials, from a user. ```{r} token <- rstudioapi::askForPassword( prompt = "Please provide your GitHub access token." ) ``` Use `rstudioapi::showDialog()` to display an informative dialog to the user. This dialog is used to report some kind of status or information to the user; it does not request any input. ```{r} rstudioapi::showDialog(title = "Hello, world!", message = "You're awesome!", url = "http://www.example.com") ```