Forum > Spanish

[Resuelto] Crear un zip con contraseña.

(1/2) > >>

GAN:
Necesito que mi programa comprima un archivo, es decir, que genere  un Zip o 7Zip con password sería el resultado deseado. Debe funcionar tanto en GNU/Linux como en Windows 7.

Conocen algún paquete o componente? Y de desde ya, de ser posible un pequeña guía.

Saludos.

lainz:
Con el programa de linea de comandos de 7zip.

http://www.7-zip.org/download.html

Funciona para Linux y Windows.

https://sevenzip.osdn.jp/chm/cmdline/syntax.htm
https://sevenzip.osdn.jp/chm/cmdline/commands/add.htm

Ejemplo con password
https://sevenzip.osdn.jp/chm/cmdline/switches/password.htm

GAN:
7Zip uso siempre, casi a diario, mi idea era no recurrir a la linea de comandos, básicamente porque no sé como hacerlo, sino hacerlo con código; encontré un paquete ZipFile 0.1 (2006): http://wiki.freepascal.org/ZipFile
Pero 0.1 y 2006 no me atrae mucho... Quizás exista algo más nuevo. Si no queda otra tendré que aprender a utilizar la línea de comandos.

Saludos.

lainz:
Es fácil, usas TProcess y pasas los parámetros, nada del otro mundo.

GAN:

--- Quote from: lainz on January 15, 2018, 11:35:06 pm ---Es fácil, usas TProcess y pasas los parámetros, nada del otro mundo.

--- End quote ---

Cito la wiki:

--- Quote ---TProcess is a component that can be used to start and control other processes (programs/binaries). It contains a lot of options that control how the process is started. Many of these are Win32 specific, and have no effect on other platforms, so they should be used with care.

The simplest way to use this component is to create an instance, set the CommandLine property to the full pathname of the program that should be executed, and call Execute. To determine whether the process is still running (i.e. has not stopped executing), the Running property can be checked.
--- End quote ---

El principal problema es que no sé el full pathname ni que compresor tiene instalado cada PC y el programa no le puede pedir ese dato al usuario. También se me complica por el tema de que funcione en Linux y Windows, aunque con eso puede solucionarse con un switch {$ifdef win32}. Sigo necesitando un package si es que lo hay.

Navigation

[0] Message Index

[#] Next page

Go to full version