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.
Build
Edit the file "titanium.xcconfig" for your current SDK setup. You can find the current TITANIUM_SDK_VERSION by looking in the directory specified by TITANIUM_SDK (depending on your setup, you may also need to change this from /Library/… to ~/Library).
Then run:
./build.py
Install
Download or build from source zipfile module.
Put zipfile-iphone-x.y.z.zip into your Titanium Application Support directory (either /Library/Application\ Support/ or ~/Library/Application\ Support/) 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);
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
Zip creating by Damien Elmes
Updated to Ti SDK 1.7.0 and deprecated fixes of minizip code by Kosso http://kosso.co.uk Forked Source : https://github.com/kosso/ZipFile
All contributors: https://github.com/TermiT/ZipFile/contributors
Credits
Based on ZipArchive: http://code.google.com/p/ziparchive/
License
MIT License