El rincón de JMACOE

La forma más sencilla para comprimir el contenido de una carpeta a un archivo zip

A partir de la versión ME, Windows ahora trabaja con archivos zip como carpetas normales. En este artículo, vamos a ver juntos un sencillo hack para comprimir el contenido de las carpetas en un archivo zip.

En primer lugar, crear un nuevo archivo zip vacío:

Código Vb.Net:

Dim hdr(21) As Byte
hdr(0) = 80 : hdr(1) = 75 : hdr(2) = 5 : hdr(3) = 6
System.IO.File.WriteAllBytes("file.zip", hdr)

Código C#:

byte[] hdr = new byte[22];
hdr[0] = 80; hdr[1] = 75; hdr[2] = 5; hdr[3] = 6;
System.IO.File.WriteAllBytes(@"file.zip", hdr);

Siguiente y, por último, vamos a copiar el contenido de las carpetas en el archivo zip que acabamos de crear utilizando los servicios de los controles de Microsoft Shell y la librería de automatización:

Código Vb.Net:

Dim sh As New Shell32.Shell
Dim sf As Shell32.Folder = sh.NameSpace("path")
Dim df As Shell32.Folder = sh.NameSpace("file.zip")
sf.CopyHere(df)

Código C#:

Shell32.Shell sh = new Shell32.ShellClass();
Shell32.Folder sf = sh.NameSpace(@"path");
Shell32.Folder df = sh.NameSpace(@"file.zip");
df.CopyHere(sf, 0);

¡No te olvides de utilizar los servicios de los controles de Microsoft Shell y Automatización de lo contrario la operación fallará. Para añadir la librería al proyecto, abre la ventana de configuración del proyecto, a continuación, selecciona la página de Referencias y haz clic en el botón Agregar.

Comparte y diviertete: