1

Is there a way to open a File Explorer pane using a command in R/R Studio on Windows, with perhaps a path specified as the argument? For example:

open_folder(getwd())

would open File Explorer at the working directory. It would be like the opposite of choose.dir, in that you go from a path to File Explorer rather than from File Explorer to the path. It would be a command-line version of clicking on Files >> More >> Show Folder in New Window in R Studio.

I don't really know how to write code to work directly with Windows, so I'm looking for something that is already implemented or can be implemented just inside R.

MS Berends
  • 3,338
  • 1
  • 27
  • 45
M. Rodo
  • 359
  • 1
  • 11
  • See `rstudioapi::selectFile` and `...selectDirectory`. These aren't quite what you want (file dialogs not file explorer) but maybe close. – dash2 May 03 '21 at 13:52

3 Answers3

3

The utils::browseURL() function is part of base R, since the utils package is installed as part of R. The function opens a URL, which can be of a website or a local folder.

So to open the current working directory in a File Explorer window:

utils::browseURL(getwd())

# or any other folder
utils::browseURL("myfolder/myfolder2/")
MS Berends
  • 3,338
  • 1
  • 27
  • 45
0

Use

rstudioapi::selectFile(path = "path/to/directory")

which will open a file picker.

dash2
  • 1,774
  • 5
  • 12
0

As it turns out, it's very simple for R to run PowerShell commands (see here), and then for PowerShell open to File Explorer (and not simply a dialogue box) at a given directory (see here).

Here is a wrapper function around base::system to do this:

od <- function(path = getwd()){
  path <- normalizePath(path)
  text_command <- paste0("powershell explorer ", path)
  system(text_command)
  invisible(TRUE)
}
M. Rodo
  • 359
  • 1
  • 11
  • 1
    It is very unwise to depend on PowerShell, because (1) it requires you to have PowerShell installed, (2) it becomes platform-dependent as PowerShell is not available for Linux or macOS, and (3) it is PowerShell. We're into R here, no need for other software :p – MS Berends Jan 26 '22 at 15:11