2012-03-28 12 views
5

मेरे पास स्थानीय फ़ोल्डर में ज़िप और रार फ़ाइलों की एक सूची है।
मुझे बस ज़िप की सामग्री के साथ-साथ रार फ़ाइलों को निकालने और संबंधित संग्रह फ़ाइल के समान नाम वाले फ़ोल्डर में सहेजने की आवश्यकता है।
चूंकि मैं एएस 3 के लिए नया हूं, इसलिए इसके लिए मुझे कोई संकेत नहीं है।
क्या इसके लिए कोई पुस्तकालय है ???




अग्रिम धन्यवाद ...एएस 3 का उपयोग कर फ़ाइलों को अनजिप और सेव करें?

+1

आप एआईआर या कुछ ऐसा इस्तेमाल किए बिना स्थानीय फ़ाइल संचालन नहीं कर सकते हैं। यदि आप स्थानीय एप्लिकेशन विकसित कर रहे हैं, तो मेरी सलाह है कि आप उन हिस्सों को सी ++ जैसी अधिक शक्तिशाली भाषा के साथ लिखने का प्रयास करें। लेकिन इस तरह कुछ भी है http://codeazur.com.br/lab/fzip/ – HeyYO

उत्तर

6

वहाँ वहाँ बाहर कुछ पुस्तकालयों AS3 में ज़िप फ़ाइलों के साथ कि सौदा है, लेकिन सावधान रहना है कि इस ActionScript में 3.

    अभी शुरुआत के लिए कोई आसान काम नहीं है
  • सबसे व्यापक रूप से उपयोग किया जाता है, लेकिन यह आवश्यक है कि ज़िप अभिलेखागार में Adler32 चेकसम है। लाइब्रेरी के साथ एक पाइथन लिपि है जो ज़िप फ़ाइलों में चेकसम को इंजेक्शन करने से पहले फ़ाइलों को प्रीप्रोसेस करने के लिए इंजेक्ट करती है।

  • As3 port of JZlib, एक AS3 पुस्तकालय Fzip बजाय अजगर स्क्रिप्ट जैसा कि ऊपर उल्लेख के साथ उपयोग करने के लिए।

  • AS3 Zip Library (लेखक कहा गया है कि है धीमी गति से FZip) कि Addler32 चेकसम समस्या बचा जाता है।

  • पर एडोब एयर, आप एक विस्तृत स्पष्टीकरण और this article on the adobe website में एक कार्य उदाहरण देख सकते हैं।

आशा है कि इससे मदद मिलती है!

+2

रिकॉर्ड के लिए, फ्लैश प्लेयर 10 (यानी, लंबे समय पहले) के बाद से FZip * को * चेकसम इंजेक्शन की आवश्यकता नहीं है। यह सिर्फ काम करता है। –

10

ज़िप फ़ाइलों को डिक्रॉप करने के लिए, आप AS3Commons Zip (पूर्व में FZip के रूप में जानते हैं) का उपयोग कर सकते हैं। यह के बिना काम करता है Adler32 चेकसम आवश्यकता पिछले उत्तर में उल्लिखित है।

यहां एक ज़िप संग्रह में सभी फ़ाइलों को निकालने का एक उदाहरण दिया गया है। नीचे समारोह जब एक URLLoader वस्तु ज़िप फ़ाइल डाउनलोड और एक Event.COMPLETE घटना भेजा गया है कहा जा सकता है:

import org.as3commons.zip.Zip; 
import org.as3commons.zip.ZipFile; 

private function _onZipDownloaded(e:Event):void { 

    var ba:ByteArray = ByteArray(e.target.data); 
    var zip:Zip = new Zip(); 
    zip.loadBytes(ba); 

    for(var i:uint = 0; i < zip.getFileCount(); i++) { 

     var zipFile:ZipFile = zip.getFileAt(i); 
     var extracted:File = directory.resolvePath(zipFile.filename); 

     var fs:FileStream = new FileStream(); 
     fs.open(extracted, FileMode.WRITE); 
     fs.writeBytes(zipFile.content); 
     fs.close(); 

    } 

} 

जाहिर है, त्रुटि जाँच उपरोक्त कोड में जोड़ा जाना चाहिए, लेकिन आप अंदाजा हो ...

+4

यह स्वीकार्य उत्तर होना चाहिए। –

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