【问题标题】:Open File Explorer at specified folder using R (or specifically R Studio) in Windows在 Windows 中使用 R(或特别是 RStudio)在特定文件夹中打开文件资源管理器
【发布时间】:2021-05-03 13:37:34
【问题描述】:

有没有办法在 Windows 上使用 R/R Studio 中的命令打开文件资源管理器窗格,并且可能将路径指定为参数?例如:

open_folder(getwd())

将在工作目录中打开文件资源管理器。这与choose.dir 的相反之处在于您从路径转到文件资源管理器,而不是从文件资源管理器转到路径。这将是在 R Studio 中单击文件>>更多>>在新窗口中显示文件夹的命令行版本。

我真的不知道如何编写代码以直接在 Windows 上工作,所以我正在寻找已经实现或可以在 R 中实现的东西。

【问题讨论】:

  • 见rstudioapi::selectFile 和...selectDirectory。这些不是你想要的(文件对话框不是文件资源管理器)但可能很接近。

标签: r windows rstudio


【解决方案1】:

utils::browseURL() 函数是基础 R 的一部分,因为 utils 包是作为 R 的一部分安装的。该函数会打开一个 URL,该 URL 可以是网站或本地文件夹。

所以要在文件资源管理器窗口中打开当前工作目录:

utils::browseURL(getwd())

# or any other folder
utils::browseURL("myfolder/myfolder2/")

【讨论】:

    【解决方案2】:

    使用

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

    这将打开一个文件选择器。

    【讨论】:

    • fn open_folder <- function(...) invisible(rstudioapi::selectFile(...)) 环绕它以避免打印选择的文件路径(如果没有选择文件,则为 NULL)。
    • 这不会像问题一样在文件资源管理器 (Windows) 或 Finder (macOS) 中打开文件夹。相反,它会打开一个文件 picker(甚至不是文件夹选择器)。
    【解决方案3】:

    事实证明,R 运行 PowerShell 命令非常简单(请参阅here),然后让 PowerShell 在给定目录中打开文件资源管理器(而不仅仅是一个对话框)(请参阅here) .

    这里有一个围绕base::system 的包装函数来执行此操作:

    od <- function(path = getwd()){
      path <- normalizePath(path)
      text_command <- paste0("powershell explorer ", path)
      system(text_command)
      invisible(TRUE)
    }
    

    【讨论】:

    • 依赖 PowerShell 是非常不明智的,因为 (1) 它需要您安装 PowerShell,(2) 它变得依赖于平台,因为 PowerShell 不适用于 Linux 或 macOS,以及 (3 ) 它是 PowerShell。我们在这里进入R,不需要其他软件:p
    猜你喜欢
    • 1970-01-01
    • 2012-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 2010-09-24
    相关资源
    最近更新 更多