自动将工作目录设置为 R 中当前打开的文件夹

Automatically Set Working Directory to Currently Opened Folder in R

R 中是否可以自动将工作目录设置为当前打开的文件夹?

示例:假设我目前在计算机上打开了文件夹 example_dir。

现在,我想 运行 一些 R 代码在不知道打开的文件夹名称的情况下将此文件夹设置为我的工作目录。 R 代码应如下所示:

currently_opened_folder <- xxxxxxx some function extracting the path for example_dir xxxxxxxx
setwd(currently_opened_folder)

感谢 this article,我刚刚发现如何从资源管理器 windows 获取位置 URL。

首先,在 PowerShell 中执行命令以检索活动资源管理器的路径 windows。然后,使用 grep 从命令 return 中提取路径。最后,您需要删除 "file:///" 前缀并解码 URL(替换特殊字符,如“%20”)。

# Get location URL of opened Explorer windows
location_url <- grep(
  "file", 
  system('powershell -command "$a = New-Object -com "Shell.Application"; $b = $a.windows() | select-object LocationURL; $b"', intern = TRUE),
  value = TRUE
)

# Check if there are multiple windows opened
if (length(location_url) > 1) {
  message("Multiple Explorer windows are opened.")
} else {
  # Clean paths
  path <- gsub("file:///", "", URLdecode(location_url))
  setwd(path)
}