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.
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
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.
Register the zipfile module with your application by editing 'tiapp.xml' and adding the module:
<modules>
<module version="0.1.20">zipfile</module>
</modules>
//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();
// 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();
// 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();
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
Based on ZipArchive: http://code.google.com/p/ziparchive/
MIT License