Автоматически установить рабочую директорию на текущую открытую папку в R - PullRequest
1 голос
/ 17 октября 2019

Можно ли в R автоматически установить рабочую папку для текущей открытой папки?

Пример. Предположим, что в данный момент я открыл папку example_dir на моем компьютере.

enter image description here

Теперь я хочу запустить код R, чтобы установить эту папку в качестве моего рабочего каталога, не зная имени открытой папки. Код R должен выглядеть следующим образом:

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

1 Ответ

2 голосов
/ 17 октября 2019

Я только что узнал, как получить URL местоположения из окон Проводника благодаря этой статье .

Сначала выполните команду в PowerShell, чтобы получить путь к активным окнам Проводника. Затем используйте 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)
}
...