2011-01-07 18 views
13

मुझे आश्चर्य है कि फ़ोल्डर से ज़िप फ़ाइल बनाना संभव है या नहीं। मेरे पास एक फ़ोल्डर है और इस फ़ोल्डरों में चार फ़ोल्डर्स हैं और वहां, विभिन्न प्रकार की फाइलें हैं। अब मैं उन चार फ़ोल्डर्स को अपनी फाइलों के साथ दोबारा ज़िप करना चाहता हूं।फ़ोल्डरों से ज़िप फ़ाइल बनाना

मैंने save() और gzip() की कोशिश की लेकिन वे जो भी चाहते हैं वह नहीं करते हैं।

क्या कोई मेरे लिए संकेत है?

उत्तर

6

ओमेगाहट में Rcompression पैकेज ऐसा कर सकता है। यहां एक न्यूनतम उदाहरण दिया गया है:

library(Rcompression) 
d <- "C:/my_data" 
files <- list.files(d, recursive=TRUE) 
zip("myarchive.zip", files=paste(d, files, sep="/"), altNames=files) 

अधिक उदाहरणों के लिए ?zip देखें।

+0

आपकी प्रतिक्रिया के लिए धन्यवाद। मैं इसे आज़माउंगा। –

+0

इस उदाहरण ने मुझे अपने मामले में ज्यादातर मदद की। धन्यवाद! –

+2

'पेस्ट (..., sep = "/") के बजाय 'file.path' का उपयोग करें। –

1

आप odfWeave package के स्रोतों में युक्तियों को देख सकते हैं।

यदि आप लाइब्रेरी लोड करते हैं और odfWeave टाइप करते हैं, तो आपको स्रोत मिलेगा, जो बहुत लंबा नहीं है और सिस्टम कॉल के साथ ज़िप और अनजिपिंग लागू करता है।

इन स्रोतों से, आप की तरह कुछ कर सकता है:

filename = '' # set archive filename 
loc = ''  # set location, if not done before 
setwd(loc) 
zipCmd = paste("zip -r ", filename, " .", sep='') 
system(zipCmd, invisible = TRUE) 

बेशक, ज़िप स्थापित किया जाना चाहिए।

+0

आपकी प्रतिक्रिया के लिए धन्यवाद। मैं इसे आज़माउंगा। –

18

टैर कमांड को बाहर निकालें। हालांकि यह ज़िप नहीं है, एक संपीड़ित टैर फ़ाइल उतनी ही अच्छी है।

tarfile <- 'newfile.tgz' 
tar(tarfile,'/path/of/dir/to/tar/up',compression='gzip') 
+4

मैं यह उल्लेख करना भूल गया कि टैर भी क्रॉस-प्लेटफॉर्म है। – Jeff

+3

+1 मैंने नहीं सोचा था कि यह आर में भी संभव था! –

+0

आपके उत्तर के लिए धन्यवाद। यह अच्छा लगता है लेकिन मेरे मामले में मुझे .zip की आवश्यकता है। लेकिन मैं इसे ध्यान में रखता हूं :) –

संबंधित मुद्दे