Titanium Mobile zip module. Updated to SDK 1.7.0
C Objective-C Python JavaScript
Pull request Compare This branch is 2 commits ahead, 14 commits behind TermiT:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Classes
ZipFile.xcodeproj
documentation
example
hooks
minizip
.gitignore
LICENSE
README.md
ZipArchive.h
ZipArchive.mm
ZipFile_Prefix.pch
build.py
manifest
module.xcconfig
timodule.xml
titanium.xcconfig

README.md

zipfile Titanium Module

Description

A simple Titanium module to create, extract and add to (since 0.1.20) Zip files. Requires Titanium SDK version 1.6.3 or above.

  • Removed the automatic deletion of the zip file after extraction. Developer can do this themselves using Ti.FileSystem.deleteFile if they need to.

Accessing the zipfile Module

To access this module from JavaScript, you would do the following:

var zipfile = require("zipfile");

The zipfile variable is a reference to the Module object.

Build

Just run ./build.py

Install

1.Download or build from source zipfile module.

2.Place zipfile-iphone-x.y.z.zip file to /Library/Application Support/Titanium and unzip it.

How to use

Register the zipfile module with your application by editing 'tiapp.xml' and adding the module:

<modules>
    <module version="0.1.20">zipfile</module>
</modules>

Zip File Extraction Example

//app.js: download zip from DropBox to Documents folder and extact file to Documents folder

// This loads the module for use in the JavaScript
var zipfile = require("zipfile");

Titanium.UI.setBackgroundColor('#000');

var win1 = Titanium.UI.createWindow({  
    title:'ZipFile test',
    backgroundColor:'#fff'
});

win1.open();
var xhr = Titanium.Network.createHTTPClient();

xhr.onload = function()
{
    var f = Ti.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory,'test.zip');
    f.write(this.responseData);
    Ti.API.log('INFO',Ti.Filesystem.applicationDataDirectory);

    // NOTE: Since 1.7.0 the Filesystem has been changed to return a localhost url for properties such as applicationDataDirectory.

   /*

   To fix this you can use :

var dataDir = Ti.Filesystem.applicationDataDirectory.slice(0,Ti.Filesystem.applicationDataDirectory.length - 1).replace('file://localhost','').replace(/%20/g,' ');
zipfile.extract(dataDir+'/test.zip', dataDir);



   */

    zipfile.extract(Ti.Filesystem.applicationDataDirectory+'/test.zip', Ti.Filesystem.applicationDataDirectory);
};
xhr.open('GET','http://dl.dropbox.com/u/1400234/test.zip');
xhr.send();

Zip File Creation Example

    // This loads the module for use in the JavaScript.
    var zipfile = require("zipfile");

    var zip = zipfile.create("/path/to/zip/as/string.zip");
    zip.addFile("/path/to/file/to/add/filename", "path/in/zip/filename");
    zip.close();

Opening Existing Zip File Example For File Addition/Update

    // This loads the module for use in the JavaScript
    var zipfile = require("zipfile");

    var zip = zipfile.open("/path/to/zip/as/string.zip");
    // This will return false if it does not exist. Now, add/update files to it
    zip.addFile("/path/to/file/to/add/filename", "path/in/zip/filename");
    zip.close();

Author

Created by Gennadiy Potapov http://generalarcade.com Source : https://github.com/TermiT/ZipFile

Updated to Ti SDK 1.6.3 and deprecated fixes of minizip code by Kosso http://kosso.co.uk Forked Source : https://github.com/kosso/ZipFile

Credits

Based on ZipArchive: http://code.google.com/p/ziparchive/

License

MIT License