何仅存档与给定正则表达式模式匹配的文件?如果没有文件符合该模式,则不应将任何文件添加到存档中。
我需要获取与字符串匹配的目录的所有文件,该字符串是变量的值:
a <- "file-05-02-2014"
files <- list.files(path = getwd(), pattern = a)
在变量文件中,我获取了工作目录中的所有文件,而不仅仅是那些与字符串a的模式匹配的文件。
当我把字符串作为参数时,它很好。
files <- list.files(path = getwd(), pattern = "file-05-02-2014")
但是,我需要它来处理字符串变量而不是字符串文字。
更新
以下是整个背景: 我在zip函数中调用list.files。如果没有文件与模式匹配,则指定目录中的所有文件和目录都将添加到存档中。
a <- "file-05-02-2014"
zip(paste(getwd(), "myarchive.zip", sep="/"),
files=paste(getwd(), list.files(path = getwd(), pattern = a), sep="/"))
所以它与zip函数有关,而不是list.files函数。
解决方法是在调用zip
之前检查是否有符合该模式的文件a <- "file-05-02-2014"
files.to.be.archived <- list.files(path = getwd(), pattern = a)
if(length(files.to.be.archived)>0)
zip(paste(getwd(), "myarchive.zip", sep="/"),
files=paste(getwd(),files.to.be.archived, sep="/"))
任何简洁的方法吗?
答案 0 :(得分:0)
您的代码没问题。您可以删除getwd
和paste
,因为您只使用工作目录。
a <- "file-05-02-2014"
files.to.be.archived <- list.files(pattern = a)
if(length(files.to.be.archived))
zip("myarchive.zip", files = files.to.be.archived)