web-dev-qa-db-ja.com

ファイル/フォルダーを自動的に削除する

いくつかのRコマンドラインですべてのファイルまたはフォルダーを自動的に削除する方法はありますか?私はunlink()またはfile.remove()関数を知っていますが、それらについては、削除したいファイルのすべての名前で文字ベクトルを定義する必要があります。特定のパス(たとえば、「C:/ Temp」)内のすべてのファイルまたはフォルダーを一覧表示し、特定の名前を持つすべてのファイルを(拡張子に関係なく)削除するものを探しています。

どんな助けも大歓迎です!

50
Francesco

たぶん、あなたはfile.removeおよびlist.files?たぶん次のようなもの:

do.call(file.remove, list(list.files("C:/Temp", full.names = TRUE)))

grepまたはgreplを使用して、ファイルのリストを特定のパターンに一致するものまでフィルタリングできると思いますか?

58
joran

既知のパスにあるすべてのファイルについて、次のことができます。

unlink("path/*")
41
Hahnemann
dir_to_clean <- tempdir() #or wherever

#create some junk to test it with
file.create(file.path(
  dir_to_clean, 
  paste("test", 1:5, "txt", sep = ".")
))

#Now remove them (no need for messing about with do.call)
file.remove(dir(  
  dir_to_clean, 
  pattern = "^test\\.[0-9]\\.txt$", 
  full.names = TRUE
))

file.removeの代わりにunlinkを使用することもできます。

23
Richie Cotton

Dirとgrepの組み合わせを使用しても、これはそれほど悪くありません。これはおそらく、どのファイルを削除するかを通知する関数に変換でき、予期したものでない場合は中止する機会を与えます。

# Which directory?
mydir <- "C:/Test"
# What phrase do you want contained in
# the files to be deleted?
deletephrase <- "deleteme"

# Look at directory
dir(mydir)
# Figure out which files should be deleted
id <- grep(deletephrase, dir(mydir))
# Get the full path of the files to be deleted
todelete <- dir(mydir, full.names = TRUE)[id]
# BALEETED
unlink(todelete)
4
Dason