私は this を読んで、tmpファイルを削除する方法について投稿します。その投稿の解決策は次のとおりです。
do.call(file.remove, list(list.files("C:/Temp", full.names = TRUE)))
ディレクトリ「C:/ Temp」は、Windowsマシンではおそらく問題ありません。私はLinuxを使用しているので、自分のtmpファイルdirが何であるかわからなかったので、次のようにしました。
tmp <- tempfile()
これは、「/ tmp/RtmpNS80no/file147c37e54e8e」を返します。
だから、私はこれを試しました:
do.call(file.remove, list(list.files("tmp", full.names = TRUE)))
これは「logical(0)」を返すので、おそらく機能しませんでしたか?
すべてのtmpファイルを削除するにはどうすればよいですか?
現在のRセッションの一時ディレクトリを取得できます。何度か呼び出されても変わりません
_tmp_dir <- tempdir()
tmp_dir
#> [1] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh"
tempdir()
#> [1] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh"
_
一時ディレクトリには、現在のRセッションの一時ファイルとディレクトリが含まれています
_list.files(tmp_dir)
#> [1] "file16dc20539ab" "file16dc4ad71f" "file16dc5bab1716"
#> [4] "file16dc74d65663"
_
セッションの一時ディレクトリは、システムの一時ディレクトリにあります。システムの一時ディレクトリのすべてを削除する場合は、このパスを使用できます(ただし、R一時ファイルだけでなく、すべてのシステムを対象とするため、お勧めしません)。
_dirname(tmp_dir)
#> [1] "C:/Users/chris/AppData/Local/Temp"
_
このパスは、OSの環境変数にも含まれています。 (明らかに、私はWindowsを使用しています)
_Sys.getenv("TEMP")
#> [1] "C:\\Users\\chris\\AppData\\Local\\Temp"
Shell("echo %TMP%", intern = T) # command line from R on windows
#> [1] "C:\\Users\\chris\\AppData\\Local\\Temp"
_
tempfile()
は、デフォルトでtempdir()
ディレクトリにある一時ファイルのパスを示します。ファイル拡張子はありません。ファイルは作成されず、tempfile
は複数回呼び出したときに異なる値を示します
_tmp_file <- tempfile()
tmp_file
#> [1] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh\\file16dc202636f"
file.exists(tmp_file)
#> [1] FALSE
tempfile() # new file path when called again
#> [1] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh\\file16dc72594e58"
_
何かをtmp_fileに書き込むことができます。
_# file is created by writeLines if it does not exist (this is the case here)
writeLines("This is a temp file", con = tmp_file)
file.exists(tmp_file)
#> [1] TRUE
_
このファイルから読み取ることができます
_readLines(tmp_file)
#> [1] "This is a temp file"
_
このファイルを削除したい場合
_file.remove(tmp_file)
#> [1] TRUE
file.exists(tmp_file)
#> [1] FALSE
_
Rセッション一時フォルダー内のすべてのファイルを削除する場合は、ファイルのリストで_file.remove
_を使用できます。この例の目的で、「file」で始まるすべての一時ファイルを削除しました(_"^file"
_はそのパターンの正規表現です)。私が作成した以上のものがあります-Rセッションは途中で一時ファイルを作成するようです。
_files <- list.files(tmp_dir, full.names = T, pattern = "^file")
files
#> [1] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/file16dc1a6a6e15"
#> [2] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/file16dc1ff572fc"
#> [3] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/file16dc20539ab"
#> [4] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/file16dc2e2227b8"
#> [5] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/file16dc4ad71f"
#> [6] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/file16dc513c35b6"
#> [7] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/file16dc570a473f"
#> [8] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/file16dc5bab1716"
#> [9] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/file16dc6e102bd4"
#> [10] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/file16dc6f253f90"
#> [11] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/file16dc74d65663"
file.remove(files)
#> Warning in file.remove(files): impossible d'effacer le fichier 'C:
#> \Users\chris\AppData\Local\Temp\RtmpmusYkh/file16dc1ff572fc', Ã cause de
#> 'Permission denied'
#> [1] TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
_
削除できないファイルがあるため警告が表示されます(おそらく現在Rで使用されている)
フォルダを削除したい場合は、unlink
も使用できます
_# create a new directory under tempdir
dir.create(dir1 <- file.path(tempdir(), "testdir"))
# create 2 file under this new directory
file.create(file1 <- tempfile(tmpdir = dir1))
#> [1] TRUE
file.create(file2 <- tempfile(tmpdir = dir1))
#> [1] TRUE
file1
#> [1] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/testdir\\file16dc26b5cb7"
file2
#> [1] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/testdir\\file16dc2b0816fe"
list.files(dir1, full.names = T)
#> [1] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/testdir/file16dc26b5cb7"
#> [2] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/testdir/file16dc2b0816fe"
# we can delete the all directory with `unlink`. It deletes also the directory
unlink(dir1, recursive = T)
dir.exists(dir1)
#> [1] FALSE
_
これは非常に簡単な方法です
unlink(paste0(normalizePath(tempdir()), "/", dir(tempdir())), recursive = TRUE)
それが機能したことを確認するには
dir(tempdir())
# character(0)