Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problemas con System.IO.Packaging.ZipPackage (.NET 3.5)

Iniciado por [EX3], 22 de Noviembre de 2007, 05:42:35 PM

« anterior - próximo »

[EX3]

Wenas.

Estuve haciendo mis primeros pinitos en el Visual Studio 2008 Express con el nuevo espacio de nombres dedicado al manejo de archivos ZIP y he intentado realizar un par de pruebas y error de codigo no genera pero tampoco funciona como deberia o eso creo. La prueba que estoy realizando consta de cargar un ZIP y listar su contenido. El tema es que no lista ningun archivo del ZIP. Este es el codigo de la prueba en VB.NET y C#:
' Formulario con un control ListBox y un control Button:

Imports System.IO.Packaging

Public Class Form1

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Dim zipfile As ZipPackage

       zipfile = CType(ZipPackage.Open(Application.StartupPath & "\test.zip", IO.FileMode.Open), ZipPackage)

       For Each part As ZipPackagePart In zipfile.GetParts
           Me.ListBox1.Items.Add(part.Uri)
       Next

       zipfile.Close()
   End Sub
End Class

// Programa en modo consola:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO.Packaging;

namespace ConsoleZIP
{
   class Program
   {
       static void Main(string[] args)
       {
           ZipPackage zipFile;

           Console.WriteLine("Abriendo archivo ZIP...");
           zipFile = (ZipPackage)ZipPackage.Open(".\\test.zip", System.IO.FileMode.Open);

           Console.WriteLine("Numero de archivos contenidos: {1}", zipFile.GetParts().Count());

           foreach (ZipPackagePart part in zipFile.GetParts()) Console.WriteLine(part.Uri);

           Console.ReadKey();
       }
   }
}

Tanto uno como otro indica que el archivo ZIP no contiene nada, cosa que no es cierta. No se si sera problema del WinZip 9 al generar los ZIP (si fuese el caso saltaria excepcion por estructura no valida (no soporta compresion Maxima (Enhanced Defleate) del WinZip). Veis algun error en la implementacion que se me pueda estar escapando?

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

shephiroth

se que suena a "perro viejo", pero, y poniendo "test.zip" a secas en la direccion del zip??

[EX3]

Cita de: "shephiroth"se que suena a "perro viejo", pero, y poniendo "test.zip" a secas en la direccion del zip??
Si fuese eso me hubiera saltado una excepcion similar a "FileNotFoundException" y no es el caso. El ZIP lo carga pero devuelve 0 archivos.

Ya he probado creando un ZIP con el propio Windows (o carpeta comprimida como el lo define) y tampoco lee el contenido. Si alguien esta trasteando con el Visual Studio 2008 agradeceria que hiciera la prueba :(

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

[EX3]

Visto que no logre que funcionara el asunto y no he visto nada googleando me he decantado por usar una libreria implementada por un MVP (Jon Galloway) diseñada para funcionar con .NET 2.0 en adelante (funciona contra System.IO.Compresion) y sencilla en cuanto a usabilidad. Dejo el enlace por si alguno lo necesitara: DotNetZip

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.