R:有效删除目录中的所有空文件

时间:2014-07-16 14:08:11

标签: r file-management

我正在寻找一种有效的方法来删除目录中的所有空文件& R中的子目录 - 前进的最佳方式是什么? (我有10万个文件的目录,所以它必须很快)

2 个答案:

答案 0 :(得分:3)

## Reproducible example, with two empty and one non-empty files
dir.create("A/B/C", recursive=TRUE)
dir.create("A/D", recursive=TRUE)
cat("", file="A/B/C/empty1.txt")
cat("", file="A/empty2.txt")
cat("111", file="A/D/notempty.txt")

## Get vector of all file names
ff <- dir("A", recursive=TRUE, full.names=TRUE)
## Extract vector of empty files' names
eff <- ff[file.info(ff)[["size"]]==0]
## Remove empty files
unlink(eff, recursive=TRUE, force=FALSE)

## Check that it worked
dir("A", recursive=TRUE, full.names=TRUE)
# [1] "A/D/notempty.txt"

答案 1 :(得分:2)

我试图从目录中删除空的.txt - 文件,其大小为&#34;空&#34; .txt - 文件是1,而不是0.为了删除这些文件,我使用了与Josh O&#39; Brien基本相同的方法,但有点简单:

# All document names:
docs <- list.files(pattern = "*.txt")   

# Use file.size() immediate, instead of file.info(docs)$size:
inds <- file.size(docs) == 1 

# Remove all documents with file.size = 1 from the directory
file.remove(docs[inds])