2009-12-17 15 views
13

मेरे पास निर्देशिका में फ़ाइलों का एक समूह है। मैं उनमें से कुछ को एक ज़िप संग्रह में जोड़ना चाहता हूं।रूबी पर रूबी का उपयोग करके ज़िप संग्रह कैसे बनाएं?

मैं देख सकता हूं कि ऐसा करने के लिए varioussolutions हैं। मैं rubyzip जैसे मणि का उपयोग कर सकता हूं या exec चला सकता हूं और केवल एक कमांड लाइन टूल का उपयोग कर सकता हूं।

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

उत्तर

13

rubyzip एक अच्छा विकल्प है। मैंने इसे एक निजी ऐप में निजी संदेश में संलग्नक ज़िप करने के लिए उपयोग किया है जिसे मैंने पहले किया था। हालांकि, यदि आप जिन फ़ाइलों को ज़िप कर रहे हैं वे बड़े आकार के हैं, तो आपको उदाहरण के लिए delayed_job का उपयोग करके कुछ पृष्ठभूमि प्रसंस्करण करने की सलाह दी जाती है।

+0

जवाब के लिए धन्यवाद में एम्बेडेड सलाह देते हैं। Rubyzip के बारे में, क्या यह बनाए रखा है या कम से कम पूरी तरह से काम कर रहा है? और देरी_बॉब के लिए धन्यवाद, यह – marcgg

+0

करने की कोशिश कर रहा है, इसके लिए यह एक अच्छा अगला कदम जैसा लगता है, मैं अब उस परियोजना पर काम नहीं कर रहा हूं लेकिन मेरा मानना ​​है कि यह काम कर रहा है। वैसे भी आप अभी भी exec का उपयोग कर सकते हैं और इसे निष्पादित करने के लिए लिनक्स को कमांड भेज सकते हैं। – khelll

+4

रूबीज़िप एक अच्छा विकल्प है; यदि आपको किसी संग्रह की सामग्री को अनजिप करने के लिए कोड को विस्तारित करने की आवश्यकता होगी, तो आप इसे आसानी से जोड़ सकते हैं, और आप किसी बाहरी प्रोग्राम से निर्भर नहीं होंगे। आम तौर पर बोलना (यहां तक ​​कि यह आपका मामला नहीं हो सकता है), एक मणि का उपयोग करना बेहतर समाधान है, आईएमओ। – kiamlaluno

5

यदि आप केवल फाइलों को ज़िप कर रहे हैं और कुछ भी नहीं कर रहे हैं तो मैं ज़िप या करने के लिए निष्पादन या सिस्टम या% x का उपयोग करने का सुझाव दूंगा क्योंकि इस तरह के मामूली कार्य के लिए एक मणि स्थापित करने और उपयोग करने से ज्यादा समझ नहीं आती है।

हालांकि, यदि आप कुछ निर्देशिका को ज़िप करने और मणि की अन्य कार्यक्षमताओं का उपयोग करने के अलावा अधिक करना चाहते हैं तो स्पष्ट विकल्प रूबीज़िप मणि का उपयोग करना होगा।

+3

सिर्फ ज़ीपिंग के लिए मणि का उपयोग करना बुरा क्यों होगा? क्या आप विस्तारित कर सकते हैं? – marcgg

+3

आप अनावश्यकता की एक परत जोड़ रहे होंगे जो अनावश्यक है। Exec सीधे सिस्टम कमांड को कॉल करता है, एक मणि लोड करने के कारण बिना किसी कारण के मेमोरी ओवरहेड होगा। यदि आप मणि की अन्य विशेषताओं का उपयोग करने जा रहे हैं, तो हर तरह से इसका इस्तेमाल करें। – bensie

+0

बिल्कुल क्या बेन्सी ने – nas

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