Hi,
Assume you have this situation;
There are 400 such zip files and you want to unzip them. Imagine you are in an R session and do not want to exit R just for this. How do we achieve this? Can we do this quickly and efficiently? Yes, we can.
A combo of foreach, doSNOW/doMC and utils libraries will do the trick.
rm(list=ls())
# setting up working directory
setwd('/root/Desktop/multi-modal-train')
# reading list of all zip files
zip.files <- list.files('/root/Desktop/multi-modal-train', include.dirs = FALSE)
zip.files
# loading required libraries
library(foreach)
# Windows fork
# library(doSNOW)
# c1 <- makeCluster(1)
# registerDoSNOW(c1)
# linux fork
library(doMC)
registerDoMC()
# setting operation variables
base.dir <- '/root/Desktop/multi-modal-train'
i <- 1
# parallel loops for faster processing
# unzipping files can proceed in parallel
foreach(i=1:(length(zip.files)-1)) %dopar%{
unzip(paste(base.dir,zip.files[i],sep='/'),exdir = 'unzipped')
cat(paste('unzipping',zip.files[i],sep = '-'))
gc(reset=TRUE)
}
# Windows fork
# stopCluster(c1)
Happy R’ing

