Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>i got the sollution, if any one wants to unzip a file just go through this code written in action script.</p> <p>package com.utils { import flash.filesystem.File; import flash.filesystem.FileMode; import flash.filesystem.FileStream; import flash.utils.ByteArray; import flash.utils.CompressionAlgorithm; import flash.utils.Endian;</p> <pre><code>public class ZIPDecoder { private var source:String; private var fileName:String; private var targetpath:String; private var bytes:ByteArray=new ByteArray(); public function ZIPDecoder() { this.source=source; this.targetpath=targetpath; } public function unzipFile(sourceFile,targetPath):void{ var flNameLength; var xfldLength; var offset; var compSize; var uncompSize; var compMethod; var signature; var zfile:File = File.applicationStorageDirectory.resolvePath(sourceFile); var zStream:FileStream = new FileStream(); zStream.open(zfile, FileMode.READ); bytes.endian = Endian.LITTLE_ENDIAN; while (zStream.position &lt; zfile.size){ // read fixed metadata portion of local file header zStream.readBytes(bytes, 0, 30); bytes.position = 0; signature = bytes.readInt(); // if no longer reading data files, quit if (signature != 0x04034b50) { break; } bytes.position = 8; compMethod = bytes.readByte(); // store compression method (8 == Deflate) offset = 0; // stores length of variable portion of metadata bytes.position = 26; // offset to file name length flNameLength = bytes.readShort(); // store file name offset += flNameLength; // add length of file name bytes.position = 28; // offset to extra field length xfldLength = bytes.readShort(); offset += xfldLength; // add length of extra field // read variable length bytes between fixed-length header and compressed file data zStream.readBytes(bytes, 30, offset); bytes.position = 30; fileName = bytes.readUTFBytes(flNameLength); // read file name if (fileName.substr(fileName.length - 1, 1) != '/') { bytes.position = 18; compSize = bytes.readUnsignedInt(); // store size of compressed portion bytes.position = 22; // offset to uncompressed size uncompSize = bytes.readUnsignedInt(); // store uncompressed size // read compressed file to offset 0 of bytes; for uncompressed files // the compressed and uncompressed size is the same zStream.readBytes(bytes, 0, compSize); if (compMethod == 8 ) // if file is compressed, uncompress { bytes.uncompress(CompressionAlgorithm.DEFLATE); } writeFile(targetPath, fileName, bytes); // call outFile() to write out the file } } } public function writeFile(baseDir,fileName,data){ var outFile:File=File.applicationStorageDirectory; outFile=outFile.resolvePath(baseDir+File.separator+fileName); var outStream:FileStream=new FileStream(); outStream.open(outFile,FileMode.WRITE); outStream.writeBytes(data, 0, data.length); outStream.close(); } } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload