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.