ficheros zip js

Abrir ficheros zip en Windows 8 Modern UI ( Metro )

Hoy vamos a ver cómo abrir un fichero javascript, mediante un filepicker (selector de ficheros), en aplicaciones javascript para Windows 8, y procesar los ficheros individualmente uno a uno.

Pasos

  1. Primero descargamos la librería zip.js de aquí éstos son los ficheros que nos interesan.
    inflate.js(comprimir),  deflate.js (descomprimir)
  2. // Creamos el objeto picker, con las opciones deseadas
        var openPicker = new Windows.Storage.Pickers.FileOpenPicker();
        openPicker.viewMode = Windows.Storage.Pickers.PickerViewMode.list;
        openPicker.suggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.documentsLibrary;
        //Establecemos los formatos que queremos capturar
        openPicker.fileTypeFilter.replaceAll([".zip", ".ZIP"]);
    
        // pickSingleFilesAsync si solo queremos uno
        openPicker.pickMultipleFilesAsync().then(function (file) {
            if(file.size >0){
                for (var i = 0; i < file.size; i++) {
                    //imaginemos que contiene ficheros de texto                
                    file[i].openReadAsync().then(function (stream) {
                        if (myFile) {
                            //Creamos un blob del archivo zip
                            var blob = MSApp.createBlobFromRandomAccessStream(myFile.contentType, stream);
    
                            //Para blob
                            zip.createReader(new zip.BlobReader(blob), function (reader) {
                                // Obtenemos los ficheros
                                reader.getEntries(function (entries) {   
                                    //Accedemos a cada fichero									
                                    entries.forEach(function (item) {
                                        item.getData(new zip.TextWriter(), function (data) {
                                            //"data" contiene el texto del fichero
                                        });
    
                                    });                                        
    
                                });
    
                            }, function (error) {
                                // Error callback
                            });
    
                        }
                    });
    
                }
            } else {
                //Se ha presionado cancelar
            }
        });
  3. Como vemos, de ésta forma tan sencilla, podremos abrir ficheros zip con zip.js y winJS.

Notas

Esto es aplicable a ficheros de texto (dentro del zip), con codificación UTF-8, pronto veremos cómo trabajar con otras codificaciones cómo ISO 5598-1 , ISO 5598-15 etc.

Nota sabionda:

Sustituyendo

 zip.createReader(new zip.BlobReader(blob), function (reader) {

por

zip.createReader(new zip.HttpRangeReader(url), function (reader) {

podremos acceder a ficheros alojados en un website.

 

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.