Título: Comprimir (solucionado 50%, falta el tema el embebido) Publicado por: magarcan en 27 Junio 2007, 16:47 pm Hola! Mi programa tiene que comprimir directorios (con subdirectorios dentro y archivos...) y descomprimir la misma estructura.En un principio había pensado la función "shell" y llamar a makecab (un programa de la línea de comandos de windows que conprime en formato cab), pero luego me di cuenta de que sólo es capaz de comprimir archivos. He intentado con distintos compresores de línea de comandos pero ninguno soporta los directorios.
¿Conocéis algún otro compresor o algún módulo de visual que haga eso?He mirado algunos dll y algunos módulos, pero sólo comprimen archivos, no directorios. Gracias!! Título: Re: Comprimir Publicado por: Hans el Topo en 27 Junio 2007, 21:13 pm si esta instalado el winzip o el winrar en la máquina que vas a comprimir podrías enviarle un lote de parametros con shell para comprimir los archivos, ambos aceptan comandos
Título: Re: Comprimir Publicado por: magarcan en 28 Junio 2007, 00:41 am Quería que mi programa lo llevase todo "encima" al final me he decantado por incluir el exe del 7z, que es libre y funciona de perlas. Además todo el tema de los directorios y eso funciona perfecto.
Ahora lo que me queda es embeber el exe dentro de mi ejecutable, ¿alguien sabe como se hace? Título: Re: Comprimir (solucionado 50%, falta el tema el embebido) Publicado por: ~~ en 28 Junio 2007, 13:33 pm Para meter el exe dentro de tu ejecutable puedes usar un joiner, crearte un mini-joiner para ti mismo o añadirlo como recurso ;)
Título: Re: Comprimir Publicado por: Hendrix en 28 Junio 2007, 14:53 pm Ahora lo que me queda es embeber el exe dentro de mi ejecutable, ¿alguien sabe como se hace? Utiliza la herramienta del VB para añadir recursos a tu proyecto, añadeselo y luego, cuando se ejecute, lo extraes. Hay un texto por este foro que explica eso. Un Saludo. ;) Título: Re: Comprimir (solucionado 50%, falta el tema el embebido) Publicado por: LeandroA en 29 Junio 2007, 23:36 pm hola este es un ejemplo para poder comprimir y descomprimir utilizando lineas de comandos de las aplicaciones WinRar y Winzip osea que es nesesario que en la pc que se ejecute cuente con porlomenos una de estas aplicaciones, el ejmplo esta echo a mis nesisades pero ustedes lo pueden modifacar para las tullas
solo voy aponer dos comandos que son para comprimir y descomprimir sin opciones , pero en la web o en la misma ayuda de ambas aplicaciones pueden encontrar mas informacion una explicacion en breve lo primero es obtener las rutas de ambas aplicaciones( WinRar y Winzip ) atraves del registro luego las lineas de comandos son para comprimir Código: WinRAR a C:\ZipNuevo.zip C:\Foto.Bmp y para descomprimir Código: WinRAR e C:\ZipNuevo.zip C:\ bien en el ejemplo muestra con el directorio en C:\ pero si ponemos una ruta mas extensa donde aparecen espacios es nesesario llevar el path a shortPath el ejemplo (dos commandbutton y cambiar las rutas del los archivos si es nesesario) Código: Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal lBuffer As Long) As Long Título: Re: Comprimir (solucionado 50%, falta el tema el embebido) Publicado por: magarcan en 30 Junio 2007, 00:17 am Muchas gracias!!! Pero como ya dige el tema de comprimir ya lo tengo solucionado utilizando el 7z(sólo me falta embeberlo en el ejecutable y extraerlo cuando lo vaya a usar), bueno, me queda una duda:
Al ejecutar por ejemplo ésta línea Código: Shell WinRar & " a " & FullPathZip & " " & PathToCompress ', vbHide Título: Re: Comprimir (solucionado 50%, falta el tema el embebido) Publicado por: LeandroA en 30 Junio 2007, 01:37 am hola el Shell WinRar ,la palabra WinRar es una variable la cual la cargo la ruta del winrar.exe leyendola del registro de windows, y esta me devuelve en donde esta instalado el winrar.exe
MiObjeto.RegRead("HKEY_CLASSES_ROOT\WinRAR\shell\open\command\") Saludos Título: Re: Comprimir (solucionado 50%, falta el tema el embebido) Publicado por: magarcan en 30 Junio 2007, 10:52 am PERFECTo, entonces si por ejemplo tengo el winrar de línea de comandos (te viene en el directorio del winrar normal) copiado en mi carpeta C:\Compresores\ y pongo ésto ¿funcionaría, no?
Código: Shell C:\Compresores\WinRar.exe & " a " & FullPathZip & " " & PathToCompress ', vbHide |