↓ 跳过正文
  1. 文章/

在Windows 8现代界面(Metro)中打开压缩包

·
Rubén Infante Docio
作者
Rubén Infante Docio
软件工程师

今天我们将学习如何在Windows 8的JavaScript应用程序中使用文件选择器打开JavaScript文件,并逐个处理这些文件。

步骤
#

  1. 首先我们从这里下载的 zip.js库这些是我们感兴趣的文件。

    js 压缩文件
    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.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) {

我们能够访问托管在网站上的文件。

相关文章