Вы можете использовать list.files(include.dirs=TRUE)
, чтобы получить список файлов и каталогов, затем используйте file.info
, чтобы проверить, является ли это каталогом. Поскольку file.info
показывает 0 для размера, когда он является каталогом, вам нужно перечислить все файлы в каталоге и получить размер, чтобы проверить, пусто ли оно. Затем вы можете удалить каталог, если размер равен 0, используя unlink
:
lapply(list.files(include.dirs=TRUE, full.names=TRUE), function(x) {
fi <- file.info(x)
if (fi$isdir) {
f <- list.files(x, all.files=TRUE, recursive=TRUE, full.names=TRUE)
sz <- sum(file.info(f)$size)
#as precaution, print to make sure before using unlink(x, TRUE)
if (sz==0L) print(x)
}
})