↓ Ir para o conteúdo principal
  1. Artigos/

Abrir arquivos zip no Windows 8 Modern UI (Metro)

·
Rubén Infante Docio
Autor
Rubén Infante Docio
Engenheiro de software

Hoje vamos ver como abrir um arquivo javascript, usando um selector de arquivos, em aplicações javascript para Windows 8, e processar os arquivos individualmente, um a um.

Etapas
#

  1. Primeiro, baixamos a biblioteca zip.js de aqui esses são os arquivos que nos interessam.

    arquivos zip js
    inflate.js(comprimir), deflate.js (abrir o zíper)

  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 podemos ver, dessa forma simples, poderemos abrir arquivos zip com zip.js e winJS.

Notas
#

Isso se aplica a arquivos de texto (dentro do zip), com codificação UTF-8, em breve veremos como trabalhar com outras codificações como ISO 5598-1, ISO 5598-15, etc.

Nota sábia:
#

Substituição

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

por

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

Poderemos acessar arquivos hospedados em um site.

Relacionados