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.
Primeiro, baixamos a biblioteca zip.js de aqui esses são os arquivos que nos interessam. inflate.js(comprimir), deflate.js (abrir o zíper)
// 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 podemos ver, dessa forma simples, poderemos abrir arquivos zip com zip.js e winJS.
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.