↓ Aller au contenu
  1. Articles/

Ouvrir les fichiers zip dans Windows 8 Modern UI (Metro)

·
Rubén Infante Docio
Auteur
Rubén Infante Docio
Ingénieur logiciel

Aujourd’hui, nous allons voir comment ouvrir un fichier javascript, en utilisant un sélecteur de fichiers, dans des applications javascript sous Windows 8, et traiter les fichiers individuellement un par un.

Étapes
#

  1. D’abord, nous téléchargeons la bibliothèque zip.js depuis ici voici les fichiers qui nous intéressent.

    fichiers zip js
    inflate.js(compresser), deflate.js (dézipper)

  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. Comme nous pouvons le voir, de cette manière simple, nous pourrons ouvrir des fichiers zip avec zip.js et winJS.

Notes
#

Cela s’applique aux fichiers texte (à l’intérieur du zip), avec un codage UTF-8, nous verrons bientôt comment travailler avec d’autres encodages tels que ISO 5598-1, ISO 5598-15, etc.

Petite note avisée :
#

Substitution

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

par

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

Nous pourrons accéder aux fichiers hébergés sur un site web.

Articles connexes