↓ Перейти к основному содержимому
  1. Статьи/

Открывайте zip-файлы в Windows 8 Modern UI (Metro)

·
Rubén Infante Docio
Автор
Rubén Infante Docio
Инженер-программист

Сегодня мы посмотрим, как открыть javascript-файл с помощью filepicker в javascript-приложениях для Windows 8 и обрабатывать файлы по отдельности.

Шаги
#

  1. Сначала мы скачаем библиотеку zip.js с здесь вот те файлы, которые нас интересуют.

    js zip-файлы
    inflate.js(компресс), deflate.js (расстегнуть молнию)

  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. Как видно, таким простым способом мы сможем открывать zip-файлы с помощью zip.js и winJS.

Примечания
#

Это применимо к текстовым файлам (внутри zip-индекса), при кодировании UTF-8 вскоре мы увидим, как работать с другими кодировками, такими как ISO 5598-1, ISO 5598-15 и др.

Мудрое замечание:
#

Замена

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

автор

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

Мы сможем получить доступ к файлам, размещённым на сайте.

Related