martes, 19 de octubre de 2010

Compresión de archivos .NET

Dentro del desarrollo dentro de .NET en algun momento he tenido la necesidad de comprimir archivos en formato .ZIP, para ello les recomendaría usar esta librería para lo compresión de archivos,  dentro de estas tenemos:

http://dotnetzip.codeplex.com/

Ejemplo de código para la compresión de archivos:


Emanuel Soto


            using (ZipFile zip = new ZipFile())
            {
                zip.AddFile("c:\\ejemplo.png", "images");
                zip.AddFile("c:\\ejemplo2.pdf", "files");
                zip.AddFile("ejemplo.txt");
                zip.Save("MyZipFile.zip");
            }


http://www.icsharpcode.net/OpenSource/SharpZipLib/Default.aspx


Emanuel Soto
                        using (ZipOutputStream s = new ZipOutputStream(File.Create(args[1])))
            {

                s.SetLevel(9); // Nivel de compresión

                byte[] buffer = new byte[4096];

                foreach (string file in filenames)
                {

                    // Crear la entrada para agregar el archivo
                    ZipEntry entry = new ZipEntry(Path.GetFileName(file));
                    entry.DateTime = DateTime.Now;
                    s.PutNextEntry(entry);
                    //Agregar el contenido a la nueva entrada.
                    using (FileStream fs = File.OpenRead(file))
                    {
                        int sourceBytes;
                        do
                        {
                            sourceBytes = fs.Read(buffer, 0, buffer.Length);
                            s.Write(buffer, 0, sourceBytes);
                        } while (sourceBytes > 0);
                    }
                }

                //Finalizar la creación
                s.Finish();
                s.Close();
            }

Emanuel Soto