RstudioのGUIでディレクトリ(フォルダ)名やファイル名のフルパスを取得する


Rstudioでは、ディレクトリ(フォルダ)やファイルの選択ダイアログを表示させることが出来ます。
Mac版とWindows版で仕様が異なります。

コマンド Mac Windows Linux
ディレクトリ(フォルダ)の選択 dir.choose() ※関数の定義が必要 choose.dir() (未確認)
ファイルの選択 file.choose() choose.files() (未確認)

Macの場合

ディレクトリの選択

以下の関数を定義する。osascriptスクリプトを利用している

# directory choose
dir.choose <- function() {
  system("osascript -e 'tell app \"RStudio\" to POSIX path of (choose folder with prompt \"Choose Folder:\")' > /tmp/R_folder",
         intern = FALSE, ignore.stderr = TRUE)
  p <- system("cat /tmp/R_folder && rm -f /tmp/R_folder", intern = TRUE)
  return(ifelse(length(p), p, NA))
}

以下のコマンドを実行する

dirname = dir.choose()

ディレクトリ選択ダイアログが開く。ディレクトリを選択する

ディレクトリ名を確認する

> dirname
[1] "/Users/Username/Desktop/tmp/tmp/"

ファイルの選択

Rstudioで以下のコマンドを実行する。file.choose関数は初めから定義されているので、新しく関数を定義する必要はない

filename = file.choose()

ファイル選択ダイアログが開く。ファイルを選択する

以下のコマンドでファイル名を確認する

> filename
[1] "/Users/Username/Desktop/tmp/tmp.txt"

Windowsの場合

ディレクトリの選択

以下のコマンドを実行する

dirname = choose.dir()

ディレクトリ選択ダイアログが開く。ディレクトリを選択する

以下のコマンドでディレクトリを確認する

> dirname
[1] "E:\\tmp"

ファイルの選択

以下のコマンドを実行する

filename = choose.files()

ファイル選択ダイアログが開く。ファイルを選択する

以下のコマンドでファイル名を確認する

> filename
[1] "E:\\tmp\\tmp.txt"

Linuxの場合

未確認です。