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.
Primero descargamos la librería zip.js de aquí éstos son los ficheros que nos interesan. inflate.js(comprimir), deflate.js (descomprimir)
// Creamos el objeto picker, con las opciones deseadas
varopenPicker=newWindows.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(vari=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
varblob=MSApp.createBlobFromRandomAccessStream(myFile.contentType,stream);//Para blob
zip.createReader(newzip.BlobReader(blob),function(reader){// Obtenemos los ficheros
reader.getEntries(function(entries){//Accedemos a cada fichero
entries.forEach(function(item){item.getData(newzip.TextWriter(),function(data){//"data" contiene el texto del fichero
});});});},function(error){// Error callback
});}});}}else{//Se ha presionado cancelar
}});
Como vemos, de ésta forma tan sencilla, podremos abrir ficheros zip con zip.js y winJS.
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.