peazip - lrl-cemea-pdll.orglrl-cemea-pdll.org/img/pdf/peazip_help.pdf3 what is peazip peazip is a...

25
1 PeaZip Open source portable file archiver Document revision: 2007 12 06 Author: Giorgio Tani Translation: Giorgio Tani This document refers to: PeaZip 1.10 executable implementation; Licensing: present documentation is released under GNU GFDL License; PeaZip executable implementation is released under GNU LGPL License. PeaZip official site: http://sourceforge.net/projects/peazip/ For more information about the licenses: GNU GFDL License, see http://www.gnu.org/licenses/fdl.txt GNU LGPL License, see http://www.gnu.org/licenses/lgpl.txt

Upload: others

Post on 17-Mar-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

1

PeaZip

Open source portable file archiver Document revision: 2007 12 06 Author: Giorgio Tani Translation: Giorgio Tani This document refers to:

PeaZip 1.10 executable implementation; Licensing:

present documentation is released under GNU GFDL Li cense; PeaZip executable implementation is released under GNU LGPL License.

PeaZip official site:

http://sourceforge.net/projects/peazip/ For more information about the licenses:

GNU GFDL License, see http://www.gnu.org/licenses/fdl.txt GNU LGPL License, see http://www.gnu.org/licenses/lgpl.txt

2

Content: What is PeaZip ..3 Plugin ..4 User interface ..4 System integration ..6 How to… ..9 Tools Options .10 System benchmark .12 Features Create archive: layout composer .13 Open archive: archive browser .19 Other utilities .24 Graphic wrapper .24

3

What is PeaZip PeaZip is a general purpose archiving application, offering a graphic front-end for Pea executable as well as for other open source archiving tools, in order to support most of existing archiving and compression format. PeaZip is available as installable package and as portable application, not requiring installation (can be used from remote locations, or removable media like USB sticks); both versions shares the same source code and features. All the backend application, due to their licensing models, are included in PeaZip pre-built packages, for complete ease of use. Since release 1.9.1, non-open source but royalty free and free to redistribute back-end applications, as for handling ACE format, are featured as separate plugin (see “Plugin” chapter); so, the base PeaZip package now contains only open-source software released under OSI-approved licensing models. Current PeaZip release supports following formats: Format Purpose Support Brief description Through Pea 0.15 executable (LGPL, Windows and Linux) PEA Archive, compression,

encryption Full Security focused, flexible integrity check and optional two factor authentication

with passphrase and keyfile (AES EAX authenticated encryption), fast compression comparable with Zip/Gzip, native multi volume spanning, can archive files, folders and volumes.

Split Multi volume spanning (file splitt/join)

Full Compatible file split/join function, with optional integrity check

Through Igor Pavlov’s 7z 4.55 (LGPL, Windows) and Myspace’s POSIX 7z 4.55 (LGPL, Linux) 7Z Archive, compression,

encryption Full Feature-rich archiving format, strong passphrase-based AES encryption,

awesome compression ratio 7Z sfx (.exe) Self extracting archive Full Auto extracting archive (.exe Win32 executable), based on 7z archiving format ARJ Archive, compression Browse/extract In use some years ago Bzip2 Compression Full Single file compressor, adequate speed and good compression ratio CAB Archive, compression Browse/extract Microsoft’s compressed archive format CHM, CHW, HXS

Compressed help files Browse/extract Microsoft’s compressed help file containing help pages based on html

CPIO Archive Browse/extract Unix archive format DEB Package Browse/extract Popular software package format, mainly used in Debian oriented Linux

distributions Gzip, TGZ Compression Full Fast single file compressor, adequate compression ratio; TGZ stands for Gzip

compressed TAR archive ISO Disk image Browse/extract Standard format for CD and DVD disk images JAR, EAR, WAR

Java archives Browse/extract JAR, EAR and WAR are archive types used in Java environment

LHA Archive, compression Browse/extract In use some years ago LZH Archive, compression Browse/extract In use some years ago COMPOUND (MSI, DOC, XLS, PPT)

Windows installer, Office files

Browse/extract MSI: Microsoft’s proprietary format of executable installers for Windows platform; partially supported; DOC, XLS, PPT: MS Office files

NSIS (.exe) Windows installer Browse/extract Open source format of executable installers for Windows platform Ooo Compressed document and

data Browse/extract *

Various OpenOffice native formats, storing compressed data, spreadsheets, documentation, graphic, etc…: ods, ots, odb, odf, odg, otg, odp, otp, odt, ott

PET, PUP Package Browse/extract *

Puppy Linux software package

PAK, PK3, PK4

Archive, compression Browse/extract *

Modified zip archives, used to store data by some popular games (like Quake3, Quake4, Doom3)

RAR Archive, compression, encryption

Browse/extract Popular archiving and compression format, with advanced encryption and error recovery features.

RPM Package Browse/extract Popular software package format, mainly used in RedHat oriented Linux distributions

SPL Package Browse/extract *

Stampede Linux package format

TAR Archive, backup Full Mainstream archiving and backup format for Unix platforms WIM, SWM Disk image Browse/extract Windows image file format XPI Package Browse/extract

* Package format for Mozilla (and related projects, as FireFox) add-ons

Z Compression Browse/extract Fast single file compressor, mainly used on Unix platform ZIP Archive, compression,

encryption Full Mainstream archiving and compression format for Windows platform; fast,

adequate compression ratio; support covers also Deflate64-compressed archives and AES-encrypted archives

Through PAQ/LPAQ, Matt Mahoney et al. (GPL, Windows and Linux) PAQ8F/JD/L/O Archive, very high

compression Full Experimental advanced compressor; at cost of high computing time and memory

usage provides best known compression ratio for most data structures (Matt Mahoney); F/L: Matt Mahoney; JD: Bill Pettis; O: Andreas Morphis

LPAQ1/5 Archive, high compression Full Light and fast version of PAQ, at the cost of some compression; 1: Matt Mahoney; 5: Alexander Ratushnyak

Through Strip (GNU binutils) and UPX 3.01 (GPL Markus F.X.J. Oberhumer, László Molnár and John F. Reiser) Various binary formats

Reduce the size of executables

Compress only Stripping symbols from executables and applying compression allow containing the size of binaries of different types (exe, elf, etc…), which is important in some situation, i.e. for distribute smaller packages; this feature is mainly oriented to

4

developers. Through Ilia Muraviev’s QUAD 1.12 (GPL) QUAD Compression Full High performance LZ-based compressor which features high compression ratio

and fast decompression. Through UNACEV2.DLL 2.6.0.0 (Windows) and UNACE (Linux): royalty-free, Marcel Lemke, ACE Compression Software (SEPARATE PLUGIN) ACE Archive, compression,

encryption Read only Popular compression format, used mainly on Windows systems

Table 1: file format support “Full” support means PeaZip is capable to archive and extract files in a given format; “Browse/extract” means PeaZip is able to read the archive for extraction, testing or listing purposes; “Compression only” means that PeaZip features only compression for the given format. Pea executable supports PEA archiving format, multi volume file split/join with optional integrity check, and file wipe (secure deletion). * Those file types can be accessed likewise zip files but add/update/delete in-archive objects with PeaZip was disabled from version 1.6 (so support is declared as read only): it’s recommended to use specific edit tools to handle those file types, mainly in order to correctly handle non-zip fields possibly featured in those formats. Package naming convention From version 1.8 PeaZip follow this naming convention:

package name-version.subversion.package type (bin/doc/src).SYSTEM.WIDGETSET.architecture

“Package name” may be peazip or peazip_portable (portable packages not needing installation); “package type” is bin for binaries, doc for documentation (in .pdf format) and src for sources (mostly written in FreePascal for Lazarus); system (upcase) is WINDOWS or LINUX (if the package is for a generic Linux system) or the specific Linux distribution if the package was built for a specific distribution only (this make sense in installer packages, which may need to target some distribution-specific locations), if the system supports multiple widgetsets and architecture like Linux, it is followed by widgetset in upcase (i.e. GTK1 or GTK2) and architecture.

Plugin Since release 1.9.1, all PeaZip (and peazip_portable) base packages contains only open source software released under OSI-approved licenses. That means that handling formats not supported through open source software (presently, only ACE archives) will require installing separately available plugin, which contains closed source, royalty free binaries. The list of available plugin can be browsed alongside the release map on PeaZip’s website http://peazip.sourceforge.net/ Plugin tree:

• UNACE: handle ACE archives o For Windows (portable or installable)

� peazip_unace_plugin-1.WINDOWS.zip - to install, manually extract package’s content to PeaZip’s /res/ path (files goes to /res/unace/ path)

o For Windows installable � peazip_unace_plugin-1.WINDOWS.exe - files are automatically installed in PeaZip’s default

directory o For Linux (portable and installable)

� peazip_unace_plugin-1.WINDOWS.tar.gz - to install, manually extract package’s content to PeaZip’s /res/ path (files goes to /res/unace/ path)

o For Linux, DEB installer o For Linux, RPM installer o For Linux, TGZ installer

User interface PeaZip doesn’t follow the browser-like user interface paradigm: interfaces for creating and for opening archives are not unified and while quite similar in look and feel are focused on different usability scopes; users can navigate between the two interfaces through “File ” submenu in main menu, or from the icons in the main panel itself. Archive creation interface, “layout composer”, is similar to a CD/DVD-burner application, allowing the user to add files and folders to the archive’s layout and to save and restore layouts for further use. Archive open/browse interface, “archive browser” , allows multiple options for selective browsing/testing and extraction: classic, Explorer-like browsing, with history and basic search functions; flat view of the whole archive’s content (WinZip-like); advanced search based on multiple inclusion and exclusion criteria.

5

For both interfaces, the job definition itself can be saved as command line (may be used later in scripts, or for learning purpose) and the user is given a detailed job log after each operation. File submenu features also direct access to “Split file ”, “Join files ” and “Wipe files ” features, and contains the “Recent” submenu, which allows re-opening recently accessed archive files; this feature can be turned off for increasing privacy, in this case the list of recently accessed archives will be cleared on program’s exit, so changing idea before closing PeaZip will allow to not lose the list’s content.

Image 1a: main panel, Windows version on Windows Vista PeaZip can also be invoked passing input object(s) as parameters i.e. selecting objects in Explorer and sending them to the application through “SendTo” menu (see System integration chapter), or using Explorer file types association double-clicking on files associated with PeaZip (it’s possible to associate most of archiving types) or even from scripts. On Linux systems, PeaZip can be easily integrated through .desktop files (start menu, context menus, file associations…) with desktop environments which follows FreeDesktop standards and recommendations (i.e. Gnome and KDE), see System integration chapter; for ease of use installable packages are automatically integrated, at least for usually most used functions, in the desktop environment. On application start-up, PeaZip parses the parameter list elements trying to understand to what function they should be passed to, in order to display the proper panel to the user, otherwise if it is invoked without additional input parameters (i.e. double clicking on the executable or on a link), the main panel will be displayed, allowing the user to choose a function. Tools entry in main menu collects: “System benchmark”, utility to benchmark system performances, and “Options”, were application’s preferences can be set. Since version 1.10 PeaZip accepts drag and drop from system. Dragging objects in the archive creation interface adds objects to current archive layout. Dragging objects in the archive browser interface adds objects to the current archive, if the archive format allows archive modifications. If the object being dragged is an archive, PeaZip will popup a disambiguation dialog allowing either to add the object to the current archive or rather to close the current archive and open the archive being dragged. Dragging objects to main application page adds dragged objects to the archive layout, but likewise the previous case if a single archive file is dragged on PeaZip’s main page the application will popup a disambiguation dialog allowing either to open the archive in archive browser interface or else to add it to archive’s layout. Help is available through “?” submenu in main menu, as links to project’s website and to most up to date documentation available online; otherwise it’s possible to download documentation as a separate package from project’s website. In the main panel, quick information on PeaZip can be shown/hidden clicking on the bulb icon (on the top right area of the application).

Click the bulb icon to show/hide quick information about the program

6

Image 1b: PeaZip, Linux GTK2 version running on Gnome

System integration PeaZip can be downloaded in pre-built binary form (.zip package) for Windows and Linux (tar.gz package) and can run without any kind of installation, even from remote mapped paths or from removable units, like CD or USB keys (however a writeable path is recommended). To uninstall the program it’s just needed to delete the folder containing it, which contains all resources and configuration files used by the program. Those packages are named peazip_portable. However, to provide better system integration an easier user experience, it is released also as a Windows self installing package (.exe):

- .pea and other supported archive format filetypes are registered in order to allow starting PeaZip when double clicking on those files (“Extract” panel will be displayed); the installer will automatically associate .pea and .001 files to PeaZip and allows to customize from a graphic form the file association for each one of other supported types;

- in the user’s “SendTo ” path and in Context Menu are created links to quickly access most common functions provided by Pea, i.e. to add selected files to an archive, to extract files here, or extract here in a new folder, to open and browse archive files and so on; links to be created may be customized during setup;

- to offer easy access to the program can be automatically created a shortcut on the user’s desktop and Start menu (in PeaZip group);

- the user can chose to launch the program right after the installation; - automatic uninstaller is created, accessible by Windows Add/Remove Programs interface or in the program’s

folder; - the installer can be run each time it’s needed to customize file associations, SendTo links or to reset program’s

configuration, it’s not needed to perform an unistall before reinstalling the same version of PeaZip. Windows installer for the current release of the program needs to run with administrative privileges, otherwise, even if the program will install successfully, the filetypes registration will fail, giving warning messages to the user. To offer a similar degree of integration in Linux desktop environments which follows the FreeDesktop standards (as Gnome and KDE) it’s not needed a separate package: in FreeDesktop_integration folder are contained simple instructions and example (working) .desktop files to add PeaZip to system’s applications and start menu and to add most used PeaZip functions to Konqueror’s service menus (context menu). However, also for Linux are available installable packages which automatically features basic system integration: create application icon, list peazip in available applications, add most used peazip features to menus... Linux installable packages come as DEB (for Debian, Ubuntu…), RPM (RedHat, Fedora, Mandriva, Suse…) and TGZ (Slackware etc…); standalone package is a TAR.GZ file.

7

Quick access to most used PeaZip’s functions is provided passing as first parameter a constant string value identifying the quick function; those methods can be used invoking PeaZip from scripts or also creating a link to PeaZip executable with the given first parameter (on any host system). This allows to have a simple and homogeneous command line interface which masks the complexity and the difference in command line syntax of underlying applications; while through PeaZip’s GUI is possible to use underlying applications with great granularity (and save command lines for any further use), PeaZip itself is made accessible through command line to offer an easy access to most common functions. The full list of strings accepted as quick link to PeaZip functions when passed as first parameter is:

-add2archive: add to a new archive and open PeaZip GUI to set archive’s type and options; -add2pea: add to a new .pea archive; -add2crypt: add to a new encrypted .pea archive; -add2split: raw split a single input file; -add2wipe: securely delete selected file(s); -add2compare: byte to byte compare two files; -add27z: add to a new .7z archive; -add27zmail: add to a new .7z archive and attach it to a mail (requires compatible mail client) -add2separate7z: add each input to a separate new .7z archive; -add2sfx7z: add to a new self extracting 7z archive (.exe); -add2sfx7zmail: add to a new self extracting archive and attach it to a mail (requires compatible mail client) -add2zip: add to a new .zip archive; -add2zipmail: add to a new .zip archive and attach it to a mail (requires compatible mail client) -add2separatezip: add each input to a separate new .zip archive; -ext2browse: open (and browse if applicable) the archive(s) in PeaZip GUI; -ext2here: extract archive(s) here; -ext2folder: extract archive(s) here, each in a new folder named after the archive; -ext2to: extract archive(s) to specified folder; -ext2tofolder: extract archive(s) to specified folder, each in a new folder named after the archive; -ext2tofolder: extract archives -ext2list: list archive(s) content, to quickly look what is in the archive; -ext2test: test archive(s) content

Image 2a: high resolution icons, SendTo and context menu integration (PeaZip entries conventionally starts with + and -) and some program’s windows in Windows Vista Please note that *mail functions require a compatible mail client, like i.e. Outlook and Outlook Express, to be the default mail client of the system. An example of command line syntax may be:

peazip –add2zip file1 file2 directory3

8

which will add specified objects (in the example file 1 and 2, and all content of directory 3) to a .zip archive, auto named after the 1st object (in this case will be named file1.zip and will be saved in the same path of file1); using –add27z instead of –add2zip will perform the same task but will result in a .7z archive (-add2pea will result in a .pea archive, -add2sfx7z will result in an self extracting executable and so on). Another example may be: peazip –ext2here archive1 which will extract archive1 in the same path; using –ext2folder archive1 will be extracted to a new folder named “archive1” in the same path of archive1. -add2archive and -ext2browse open the PeaZip GUI, to allow further user’s interaction. Please note that while from PeaZip interface you may work on a single archive at once, with -ext2browse, -ext2here, -ext2folder, -ext2list and-ext2test you can browse, extract, list and test multiple archives, even of mixed types, at once; operations will be launched in parallel in different instances of PeaZip. Please note that launching the program through links in SendTo allows receiving multiple input arguments from the command line for each instance of the program; those links can be customized simply editing the link file in SendTo folder. Conversely, links in Context Menu can receive a single input argument from command line for each instance of the program; this limitation need changing programming approach to be avoided, see in exemple: http://groups.google.com/group/microsoft.public.vb.winapi/browse_frm/thread/b7e420cddf76ec47/eb67517d9faab7d9?lnk=st&q=context+menu+multiple+filenames&rnum=1#eb67517d9faab7d9 Moreover, Context Menu items can be customized only editing the registry, which is inherently more complex (and potentially more dangerous) that editing a link file as in previous case; that’s why links in SendTo was the first system’s integration mechanism implemented, anyway Context Menu integration was added in version 1.7 alongside the classic SendTo integration. Both SendTo and context menu entries can be customized during setup (Windows installable version) and most functions can be created as entries either in SendTo and context menu, or in both. At present level of development, as mentioned, PeaZip’s Context Menu items can accept a single input argument; extraction, test, list, add to separate archives and split feature works just fine with this limitation, since they launch in parallel one instance for each input argument, but add to archive features cannot be replicated (unless there is only a single object to archive). For that reason it’s recommended to keep Add to archive, Add to .7z and Add to zip links in SendTo menu.

Image 2b: menu integration in Linux (KDE, Konqueror Service Menus) Another kind of system integration allows PeaZip to open archived objects with associated application, open URLs and to open the browser at the output path after an archiving or extraction operation; those actions are possible on Windows and can be performed also on Linux if supported by the desktop environment; both Gnome and KDE support those actions, the program will try to automatically detect if the user is running a session of one of those two desktop environments to use the appropriate methods. Linux supports different widgetsets, parts of the system which mainly handles graphical objects; most widespread widgetsets are GTK and GTK2 (related to Gnome desktop environment) and Qt (related to KDE desktop environment). Since (usually) Linux systems comes with both Gnome and KDE, or with application’s set which requires both GTK/GTK2 and Qt libraries, it’s (usually) not a problem to run an application compiled for one of those mainstream widgetsets under any Linux system, however in some cases specific libraries may be required when trying to install the application or the first time it is started; in this case the system may either show a popup, start the package manager or even fail silently to launch the executable (launching it via console allows to get more information in this case).

9

PeaZip installable packages are compiled for GTK2 libraries only, while standalone package is available compiled for GTK and GTK2. Lazarus, the IDE used for developing PeaZip, can compile PeaZip sources targeting many more widgetsets, which level of support maturity in Lazarus may vary. About the localizations of PeaZip it should be noted that while the application actually uses only UTF-8 strings internally, the GUI doesn’t fully support UTF-8 because in Lazarus, UTF-8 support is currently under development (for latest information see http://wiki.lazarus.freepascal.org/LCL_Unicode_Support). UTF-8 support is utterly complicated because each system / desktop / widgetset PeaZip is developed for (or may be ported) has different levels and ways to support UTF-8. That is usually a minor problem for Western-European localization but it’s a major issue, for the moment, for translations in most of non West-European languages; the issue however should come to a solution since full UTF-8 support is in the roadmap of Lazarus IDE.

How to… Due to aforementioned system integration features, taking installable package for Windows as reference, PeaZip gives the following quick ways to perform following common tasks:

• Archive files and folders: select files and folders to be archived, rightclick and select “+ + Add to archive” entry in SendTo menu; you can then select the archiving operation to perform: split, compress in a given format, encrypt…

• Even faster, if you have to archive a single object (which may be a file, a directory or even an entire drive) you can rightclick and select “+ Add to separate archive” from Context Menu. NOTE: The limit of a single input item for each instance of the program launched in that way is due to reasons mentioned in System integration chapter; passing more items to “+ Add to separate archive” will result in multiple instance of the program, each one allowing to archive one of the input items. This may even be a desired behaviour if the user actually needs to create separate archives in parallel.

• To directly archive files and folders to a ZIP or 7Z archive, select files, rightclick and select “+ Add to ZIP” or “Add to 7Z” from SendTo menu.

• Optionally, during installation (you can run setup whenever you need to reconfigure the program, without need to uninstall it) you can create also “+ Add to * and mail” entries in SendTo menu, to create an archive in given format and then send it by mail (requires a compatible mail client, like Outlook, to be the default mail program on the system).

• You can also optionally create “+ Add to separate *” entries to SendTo and to Context Menu to add each selected object to a different, separate, archive in the given format. In this case each input item will placed in a separate archive, i.e. selecting 10 files will result in creating 10 archives, while selecting 2 directories containing 10 files each will result in 2 archives (each directory is passed as a single item).

• To directly split a file, rightclick on it and select “+ Split file” from Context Menu (this entry can be created also in SendTo menu, but by default is in Context Menu since it works on single files); the user will then be asked by Pea executable about the size of volumes and (optional) integrity check algorithm.

• To directly encrypt files and folders, select “+ Encrypt files” from SendTo menu. • To extract files to archive’s directory, select “- Extract archive(s) here” in Context menu (optionally can be created

also in SendTo). Multiple archives, even from different paths and in different formats, can be submitted at once and will be elaborated in parallel. If you want to be sure that content of each extracted archive will go to a separate folder named after the archive, select “- Extract archive(s) to new folder” instead.

• To test archive’s integrity (if the function is supported by the format) select “- Test archive(s)” in SendTo menu (it can be optionally created also in Context menu), it can act on multiple and composite objects just as Extract command.

A standalone Windows or Linux version can reach this level of integration as well since, as explained in System integration chapter, the program parses the first parameter passed to recognize calls to most useful functions. It’s so possible to use scripts, links, .desktop files, registry entries etc depending on the system’s available features; any mechanism able to pass parameters to the application’s executable is suitable to create calls to specific PeaZip functions.

10

Tools Options Submenu Tools > Options allows to set behaviour and aspect of PeaZip application.

• “General behaviour” contains application-wide preferences:

o “Application options” group: � “Always ask for password extract/test/list from system’s context menu”, off by default, always ask

for password on extraction, test or list operations form system’s context menus. � “Close gwrap when job completes”: off by default; if flagged, triggers the job’s graphic wrapper to

close when job is completed (so it has effect only jobs launched in graphic mode, see below). You can override it for each job instance with “Close when job completes” checkbox in gwrap window itself.

� “Enable multiple selection”: on by default, allows multiple selection rather than simpler range selection in layout composer and archive browser; uncheck it if you prefer the range selection as in pre-1.9 version.

� “Save history of last used archives”: on by default, allows to keep track of recently created and opened archives (File > Recent submenu); disabling the option the history will not be tracked, the submenu will be disabled and existing items will be cleaned closing the application.

� “Save main window state”, on by default, keeps the windows size and position on exit, otherwise last used size and position is kept, ignoring utter modifications.

� “Show information messages”, off by default, turns off popup of information messages (not affects warning and error messages) speeding up user interaction.

� “Show password field content”, off by default; if enabled allows displaying readable text entered in password fields and disable password confirmation field, allowing the user to write the password only once.

o “Binaries user interface” group allow to chose the way the backend command-line applications will run: � in the native console interface (console mode), giving detailed and real time progress indication; � through a graphical wrapper using pipes (graphic), giving a very detailed job log and allowing to

pause, resume and change priority of the job; � through the graphical wrapper without using pipes (graophic, default), giving a much more

responsive UI than previous mode. o “Localization” group will contain localization options and is presently inactive.

Image 3: default options panels

Click the Tool icon to restore pre-set defaults; it has no effect on “Theming” parameters which have their own reset switch in “Theming panel”

11

• “Create archive” tab: o “Default format” group allows setting the default archive/compression type; from version 1.2 7z is the

default format, but any format with full support (see Table 1) can be selected. 7z is recommended when high compression ratio is needed, Zip is recommended for exchange data with most Windows users while Tar is recommended for exchanging data with UNIX users.

o “Favourite formats” allows choosing a selection of user’s favourite formats to be displayed in a popup menu while clicking on create archive button, in layout composer (see Layout composer chapter).

o Always compress to default path, don’t ask”, off by default: if this switch is off, PeaZip will ask for path each time an archive is created, otherwise it is possible to specify a default path where all new archives will be created without prompting for request to the user; the default path can be reset to a default automatic value which will make PeaZip create new archives in the same folder of the first object listed to be archived, otherwise any reachable path may be specified.

• “Open archive” tab: o “Always extract to a new folder”: off by default; if you like to be sure to always extract the content into a

fresh new directory (named after the archive) flag this option. o “Default extraction path”: the path where archives are extracted, by default archive’s path itself. When

opening archives the user can also specify a different extraction path, which overrides this global default for the current PeaZip’s session and which can be changed from “I/O” tab in archive browser interface or each time a different path is specified using an “Extract to” function. The path will be reset to this global default value at each program’s startup or using “Reset extraction path” feature in archive browser context menu.

o “Always ignore paths for Extract displayed” and “Always ignore paths for Extract selected: off by default; ignore paths means extracting the output to output path, not re-creating the directory structure of the output objects as is in the archive; applies to extract and extract to functions.

o “Always ignore paths for Extract and…”: on by default, works as the previous items on object extracted through extract and… functions. Hint: extracting a folder from the archive the path will be always preserved, overriding this option for all ignore paths switches.

o “Don’t give full content information (faster) if (7z supported) archive is bigger than:”, default on, 25 MB default size. Pre-1.9 versions of PeaZip will browse full archive’s content to give comprehensive statistics on 7z supported archives on opening (compressed and uncompressed size, number of objects archived…); since this process is time consuming for big archives containing thousands objects, it can be set a size limit for “small” archives to be opened in that way. Over the given size, archives will be opened browsing on start the root path only, with very little impact on usability but great impact on speed. Disabling this option, all archives will be browsed in the pre-1.9 way.

o “Use archive browser”: on by default; if on, PeaZip will attempt to browse archive’s content while opening archive types which supports that option; if unchecked, archive will not be browsed on opening (faster, but will give no clue of archive content). If the archive browser is used, the browser option are enabled:

� “Archive browser interface”: Browser is a classic navigable browser (default), Flat shows all archive’s content, Save last used make a new session of PeaZip start using the last used browser’s interface (either Browser or Flat).

� “Action on open or preview with ‘associated application’:” set the action to perform on “Extract and open” and “Preview” with associated application (see next point)

• Extract the object; • Extract the object and open the output path; • Extract the object and try to open it only with PeaZip, if it’s a supported filetype; • Extract the object and run it with associated application, tries PeaZip first

(default). • Extract the object and run it with associated application, not trying PeaZip first.

� “On doubleclick do:” set the action to perform when double-clicking on an object in archive browser (either in flat or browse mode); available actions are

• “Extract and open with associated application”, extracts the object and launch the associated action set at previous point;

• “Preview with associated application”, like the previous, but extracting the object to a temporary path, an hidden folder in output path, which is removed closing the archive (default);

• “Extract and open with custom application”, extracts the object and chose the application to use to run it.

NOTE: if you prefer not relying on temporary files, you can set this option to “Extract and open” to have the same double-click behaviour as in 1.8 release. However please note that temporary objects created by “Preview” function are not created in system’s temporary folders, but are rather created in output path, which should logically have the access policy desired by the use for the output.

• “Theming” tab allows to change the application colours and icons and, under Win32 (from Windows 2000), opacity, see below.

12

Theming, localization and window state are not reset clicking on the Tool icon in Default options panel, since it will be of little use to be treated like other functional program’s options. Options and theming variables are saved to conf.txt file in PeaZip’s /res path; in order to make the configuration file human-readable option variables are commented. In any case conf.txt file can be deleted in order to totally reset application’s configuration, PeaZip will re-create it with default hardcoded values. Theming At start-up the application loads a configuration file in “res” directory in the application’s path, loading theming parameters along with other configuration variables; theming parameters are applied to PeaZip, Pea and Gwrap graphical applications. From the “Theme” drop down menu the user can chose to use preset themes which comes packed with PeaZip, or a custom theme (chosing the “theme.txt” file from /res/themes/themename path). Theme’s settings set the default values for icons folder , colours , row height and opacity values, that can also be changed and saved at configuration file level. Configuration level settings override correspondent theme settings, which can be restored clicking on “Reset” link for each variable. To prevent using of too high levels of transparency that will make the application unusable (up to totally invisible) there is a maximum level of transparency hard coded for the application. The user can also create new themes from current settings, choosing a theme name and path: theming variables will be saved as a new theme file; some themes come with the application, in “themes” dir under “res” path. Theme files (and configuration file) can also be manually edited with a plain text editor. Theme folders should be saved in /res/themes path. Default theme, Tango, should not be removed, since in case of theming failure it allows to roll back automatically to basic applications colours and icons (Pea executable, meant to be used not only through PeaZip, has hard coded theming values to not need relying on PeaZip’s conf and theme files). From version 1.8 transparency is not set by default, being the default opacity set to 100%, which make the transparency-related code not used and allowing better UI performances; to use transparency simply go to theming panel and drag the transparency bar to the desired level.

Image 4: Tango theme

System benchmark Since version 1.9 PeaZip features a synthetic benchmark based on 7z/p7zip binary, showing the rating of the current machine in MIPS and in Core 2 Duo equivalent clock speed, plus report available number of hardware and software threads. To start the test, use Tools > System benchmark entry in main menu; the test may be time consuming and will heavily impact on system performances while running, using the much CPU time as possible on multiple cores and occupying about 500 MB of RAM.

13

Features

Create archive: layout composer Layout composer is the interface for creating archives: it offers the user the tools to pack multiple files, directories and even volumes into a single archive that may be split in multiple volumes of a given size: n objects enter, m volume(s) of given size exit. It features four tabs:

• Archive, the layout of objects to be archived; • Options, archiving job parameters: from this tab is possible to save job definition as command line to a plain text

file for maximum freedom of use; • I/O (input/output); by default the user will be asked for output path where the archive will be created, in this tab

the user can flag the checkbox “Don’t ask for output path” in order to define the archive’s name and path (clicking on “…” button), otherwise output archive name can be suggested (named as the first or the selected object of the input list) clicking on the archive name’s field. The yellow arrow icon resets the output name; the green arrow icon browses the output path.

• Filters, enabled only when using formats supported through 7z binary: allows to specify the exclusion of files, directories and file types; please see 7z documentation about exclusion filters to understand how they works. Saving the archive’s layout will save both the object list in “Archive” tab and the filters in this tab; filters are ignored if for the archive format used exclusion filters are not supported (formats not supported through 7z binary).

Image 5: “Create archive” interface (on Windows Vista) Entering the Layout composer interface will enable the “Layout” submenu in main menu, which replicates most of the functions featured on Layout composer’s context menu (see below). Archive layout composer interface supports drag and drop of objects from system to the application: drag items on the layout composer to add them to the current layout. Archive tab and toolbar The input object list can be populated adding files or folders from the application’s toolbar , or from a contextual menu , which is accessible right clicking on the input object’s list; the layout can be saved to a plain text file (for maximum flexibility of use). A saved layout (or more layouts) can be loaded to populate the current layout, in order to re-use a saved object selection or merge more layouts in a single one; loading layouts it is checked if duplicate objects exists or if non-existing objects are submitted to the current layout (i.e. objects which were moved, renamed, deleted or otherwise made non accessible).

toolbar

context menu

14

From the context menu it is also possible to remove objects from the archive and to explore object’s path. “Open with…” submenu allows opening the selected object with PeaZip, with associated application, or with a custom application. “Tools” submenu allows quick access to some PeaZip functions, like “Split file”, “Join files” and “Wipe files”. “Search on the web” submenu allows searching for the filename on search engine, on blogs, on Wikipedia and on Usenet, in case the user has any doubt or need any information about the object. Objects in the archive layout can be sorted by name, full name, size, extension, type, attributes etc, clicking on titles in archive layout’s title bar. In layout composer, folders are highlighted in light orange and have the folder icon on the left; archive types supported by PeaZip are highlighted in light green with archive icon on the left. The application’s status bar displays a count of input object’s number (files and dirs) and total size. Please note that selecting a folder as input make all the folder’s and subfolder’s content to be archived while needing to declare a single object (the folder) in the list; folder’s and subfolder’s content so will not appear in the list as separate objects but will be counted as size and numbers in the content label; folders in object’s list cannot be browsed (native system’s dialogs are used to select objects). The leftmost “Create archive” button on the toolbar, displaying archive’s extension in the caption, launches the job with given parameters; right clicking on that button will show a popup which allows to chose between a selection of favourite archive formats (set in Tools > Options); to see all supported formats and options click on “Options” tab in layout composer. Options tab Clicking on “Options ” tab shows the options panel, allowing choosing between different archive and compression formats (“Archive type:” combo box in the panel). Once the format is selected, it will be displayed a brief explanation of the characteristics and features offered by the selected format, and format options will be accessible in the bottom part of the panel. “TAR before” option, on the right side of archive type combo box, allows to consolidate all input objects in a single TAR archive, temporarily saved in the output path, which will then (in a second pass) be compress/encrypt/split using the format specified in archive type combo box (after that second pass the temporary TAR archive will be deleted). That option allows easily merging the advantages of TAR format (of mainstream and standard usage on most Unix systems) with features of other archive formats. It is especially useful as it allows to select compression-only formats (like gz, bz, quad) to compress archives of multiple objects (resulting i.e. in tar.gz or tar.bz or tar.quad) quite transparently for the user, but however it can be used in conjunction with any format (forming i.e tar.7z, tar.paq, tar.pea and so on). The application will try to check if “TAR before” option is needed; however the user can check/uncheck this option anytime before launching the archiving process. “Volume size” combo box, common to most formats, allow (optionally) splitting the resulting archive in volumes of given size, choosing between presets (from 1.44 MB FD to 8.5 GB DVD DL size) or freely composing a custom size (in Bytes, KB, MB or GB). This option is not supported by some formats (i.e. self extracting archives) and will be automatically overridden if not supported (the combo box will be greyed to be noticed by the user). Last used compression options will be remembered to be used as default; resetting applications default (tool button in “default options”) resets also compression options. Selecting a format supported through 7z executable (7z, Bzip2, GZip, Tar, Zip) it will be displayed the 7z option subpanel, featuring an Options and a Compression group box. “Compression” group box allow choosing compression level, compression algorithm and fine tune compression options, which are format specific. Last used compression level and method is remembered by PeaZip for those formats, but other custom options (dictionary, word, passes, solid block size) will be remembered only for the current session (until the archive type is changed or edited) and next times the last used compression level will be proposed with its default settings. Compress files open for writing option allows to add files to the archive even if open for writing by other applications, that is very useful when running backup jobs (otherwise, if the option is not checked, open for writing files will be skipped); the last used setting is remembered. An empty edit box is provided at the bottom of this group, allowing to freely enter additional parameters for underlying job (syntax is not checked, so use with caution). “Encryption” group box contains encryption related options:

- Encrypt (.7z and .zip only) allow setting a password for the archive’s content. - Encrypt filenames (7z only), if used with Encrypt options, password protect also the archive’s content list. - Use AES256. The option is always on for .7z archives, while for .zip format is possible to uncheck this option in

order to use ZipCrypto algorithm; this is not recommended since ZipCrypto is a weak algorithm but may be useful if the user need to generate encrypted .zip archives compatible with some outdated applications not supporting new WinZip standard AES encryption.

15

Image 6: archive creation options (7z format) “Other options” group box allows choosing other format specific options:

- “Function” combo box allow to choose the policy to follow when a pre-existing archive with the given name is found on the system:

o new archive will force the creation of a new archive, with unique name; o add will append the input objects to the archive content, if an archive with the given name exists; o update will substitute matching objects into the archive, if existing, with input objects.

- “Threads” combo box allow specifying the number of threads to try to generate for parallelising and speeding up the execution of the application (possible only for LZMA, Deflate, Deflate64 and BZip2 algorithms) on Hyper threading-enabled / multi-core / multi-CPU environments; on Windows systems single processor systems will be recognized and will use “no multithreading” option by default while multi processor system will use “generic multithreading” option by default; on non Windows systems “no multithreading” is the default option.

- Send by mail open a new mail in the default mail client, attaching the resulting archive; it requires a compatible mail client as default system client, i.e. Outlook or Outlook Express in Windows, and doesn’t work with multi volume archives (the options will be hidden if Volume size is not “Single volume”).

- Create self-extracting archive (7z format only) create a Win32 executable (.exe) that will self extract archive content; the receiver will then not need any application to extract the archive since all what is needed for extraction is embedded in the archive itself. As drawback the resulting file will be about 80KB bigger than the raw archive and the executable must be in a single volume (Volume size option will be greyed). Checking this option the user can choose between a console and a graphical interface (default) for the self-extracting application.

The job definition, as command line to pass to underlying executable, can be saved as plain text clicking on “Save job” button on the bottom-right corner of the options panel. 7z executable can be used by PeaZip in console mode (launching the application in a console) or, by default, through a graphic wrapper (see gwrap chapter below) that read the output of the program through pipes and writes it into a GUI, displaying additional information usually not given by the console application (exit code explanation, input size, elapsed time in ms, speed in B/ms) and allowing to save a job report (console output plus additional information); this behaviour is set in Tools > Options.

16

Image 7: 7z (creating .7z archive) running through graphic wrapper; in the graphic wrapper, on the right compression ratio and speed (logarithmic scale) graph, on top the tab switches between synthetic Status page and Report page, showing job’s output in details.

Graphic wrapper application will load the same theming parameters used for PeaZip; each graphic wrapper instance is a fully independent process and the user can continue using PeaZip for other unrelated tasks. Job’s graphic wrapper can be set to close after job completition using “Close gwrap when job completes” option in “Default options” or, for each single gwrap instance, with “Close this window when job completes” on gwrap for itself. In console mode, the console of the job will automatically close at job completition without prompting anything if the job completes without errors (otherwise an error report will popup); flagging “Show information messages” in “Default options” is possible to change this behaviour, having a confirmation message also when the job completes successfully. Selecting a format supported through Pea executable (Pea and raw file split) it will be displayed the Pea option panel. For raw file split it will be prompted only the optional integrity check to be performed on the file; integrity check information will be saved on a separate file, allowing files splitted by Pea to be joined by other similar applications (like Unix split, Hjsplit, FileTools etc). Pea archive features and options are briefly introduced in the following paragraph “Pea archive format”. Pea archive format Pea is the archive format developed from the Author, and it is supported through Pea executable; for more information you may look documentation and sources of Pea on the PeaZip project site (http://sourceforge.net/projects/peazip/). Briefly: by default input objects are compressed to a level comparable to default level .zip compression; archiving, compression, volume splitting, redundant integrity check and, optionally, authenticated encryption, are done in a single passage and not requiring temporary files. For maximum operation security three levels of checks are defined:

- on input objects: on the uncompressed data structure of input files plus all associated data (object’s name, attributes etc), allowing to detect corruption on original data with object granularity;

- on stream: in Pea 1.0 file format, implemented in current PEA executable, the stream is the whole archive (storing file’s content after compression and all necessary associated data), allowing to detect corruption on the data structure after compression;

- on output volume(s): on data in it’s final form (compressed and encrypted, if those features are used), allowing in example to repeat the download of a single corrupted volume;

The stream contained in a Pea archive can be encrypted and authenticated, choosing an Authenticated Encryption function for stream level control instead of an hash or checksum: the whole content of the archive will be kept private and checked for corruption or tampering in a cryptographically secure way. Authenticated encryption schemes featured by PEA are: 128 bit AES used in classical composition with SHA1 HMAC; 128 bit AES used in EAX mode; 256 bit AES used in EAX mode. Output archive will be named appending “.000001.pea” to the output name; if a multivolume archive is generated, each volume will bring the progressive number in the file name in place of the .000001. part.

17

Clicking on “more options:” label the user is allowed to choose optional parameters for the archive: - compression: by default is used a compression scheme named PCOMPRESS2 (“default compression”), that offer

roughly similar speed and compression performance than default .zip or .gzip formats; this is the speed/compression tradeoff usually fit for most needs, however if compressing hardly compressible input “no compression” may be the best choice. Fast compression sacrifice some compression efficiency for considerably higher speed, while high compression offer only marginal improvement over default compression but is considerably slower and should be used only for small and very well compressible input type.

- security options: o by default object(s) are integrity checked with CRC64 and volume(s) are hashed with SHA256; that

configuration is meant to build an archive with strong integrity checks but not to protect archive’s privacy and authentication;

o a faster mode check object(s) with CRC32 and volume(s) with MD5; o the fast security mode check objects with CRC64, volumes with SHA256 (as default mode) and use

Authenticated Encryption (protecting privacy and authenticity of the data) on the whole stream, protecting the whole archive as a single entity, using EAX with AES128;

o the average security mode is like the previous one but use EAX with AES256; o the high security mode is similar to the previous, with Whirlpool as volume level check instead of

SHA256; Whirlpool is slower than SHA256 but it is actually the better reputed hash algorithm. Clicking on “+” label on the left side of security options group allow the user to fine tune the security options choosing the algorithm for each one of the three levels defined by Pea, while clicking on “-“ label will bring back basic security option dialog.

Image 8: Pea, launched by PeaZip; job report is available clicking on “note” icon Once PEA is launched, the user will be asked for a passphrase (may contain any typeable character) and, optionally, a keyfile if encryption is used, otherwise the archiving operation will start immediately; at the end of the operation PEA allow to access to a detailed job log that can be saved as tabulated text, that can be imported in many kind of application (i.e. spreadsheets or databases) for further inspection. Pea application will load the same theming parameters used for PeaZip; each Pea instance is a fully independent process and the user can continue using PeaZip for other unrelated tasks. Selecting PAQ as archive type, it will be displayed the PAQ options subpanel, allowing to choose compression level and the PAQ8* compressor to be used between supported ones (which uses the same command line syntax); for each compression level the requirement of memory during compression is displayed; please note that if the amount of memory required is higher than available RAM the job will be severely slowed down due to paging to disk. PAQ is a very powerful compression scheme and it’s presently in research state; different versions and branches exists and you should use the very same implementation to compress and uncompress data. The positive side in using PAQ is that, for most data structures, it will bring to unmatched compression ratio, better than any other compressor; the downside is that the algorithm has very high memory and computing power requirements for today’s machines, resulting to be very slow if compared to mainstream compression algorithms, so the user should carefully consider if the speed/compression trade-off would be advantageous case by case. To obtain best results while compressing many small files you should also consider consolidation them before (i.e. using tar) since PAQ would store filenames (and sizes) in uncompressed form. Selecting LPAQ as archive type, it will be displayed the LPAQ options subpanel, allowing to choose compression level. LPAQ, likewise GZip and BZip2, is a compression only algorithm; archiving multiple objects with LPAQ compression is possible using “TAR before” switch which consolidate input object in a single TAR archive (temporarily saved in output path) before compression, which is automatically set if needed.

18

Selecting QUAD, it will be displayed QUAD’s option subpanel, allowing to choose if using max compression mode (slower compression, decompression will remain fast). QUAD is a compression only algorithms and likewise other ones (GZ, BZ2, LPAQ) it can benefit of “TAR before” switch for handling multiple input files. Selecting UPX, it will be displayed the Strip/UPX options subpanel, which is intended mainly for developers needing to reduce the size of executables before distribution. This action can accept as input only a single executable file at time and is not intended to be used as a general purpose archiving/compression utility; in fact misapplying Strip and/or UPX on non suitable executables (i.e. jet stripped executables) may easily lead to unusable output executables. It is possible to omit either UPX compression (selecting “do not compress” in “Compression” combo box) or Strip pre-processing (unchecking “Strip before UPX”). It’s possible to backup the executable file before Strip/UPX checking “Keep executable’s backup” (enabled by default); the backup file will be named as the executable with .backup extension appended. Create a keyfile or a password For higher security of encrypted archives, a keyfile can be used along with the passphrase to key the encryption (Pea format only). The keyfile need to be securely managed since its content need to remain secret as well as the passphrase; if it gets recovered by an attacker any additional security introduced by using it will be destroyed. Any file may be used as keyfile (up to 2048 bytes are used, from the beginning of the file), but it’s strongly recommended to use a randomly generated file. PeaZip’s “Create archive” panel contains a utility to generate a random keyfile sampling different entropy sources and submitting entropy collected to a robust random number generation routine; click the locker icon on the top right area of the application to show the subpanel for keyfile generation. In the same panel it’s also possible to use the collected entropy to generate a 4-64 character random password ; the password will contain mixed case base characters and digits only, in order to be typeable on any keyboard layout and to be accepted by almost all applications or online password forms. Needless to say, the passwords and keyfiles generated in that way can be used not only in PeaZip but also in any other application requiring a strong password or a random keyfile. This utility uses functions provided by pea’s libraries so refer to PEA documentation for any detail about random number generation and entropy collection in PeaZip project.

Image 9: keyfile generation utility Keyboard shortcuts Create archive interface supports following keyboard shortcuts: Add file(s) Ctrl+A Add folder Ctrl+F Load archive’s layout Ctrl+L Save archive’s layout Ctrl+S

Click the Locker icon to show/hide keyfile generation utility panel

19

Remove selected object from archive’s layout Ctrl+R Open object with default application Ctrl+O Open object with … Ctrl+W Explore object’s path Ctrl+E

Open archive: archive browser Archive browser interface features four tabs:

• Browse, view of the content of archive in two different modes: o classic, navigational browser (Explorer-like); o flat, view of the whole archive’s content (WinZip-like) or of filtered content (see filters tab explanation

below); • Options, extraction job parameters: from this tab is possible to save job definition as command line for any further

use (study, scripting, analysis etc); • I/O (input/output); output option (ask output path, extract to a default directory or archive directory) and

information about input (size, compression, files and directories archived…); • Filters (only using formats supported through 7z binary), allowing to specify multiple inclusion and exclusion

criteria for files, directories and file types, one per line; please see 7z documentation about inclusion and exclusion filters to understand how they works.

Archive browsing can be turned off un-checking “Use archive browser” in Tools > Options > Open archive. That leaves a basic user interface, similar to PeaZip 1.1 UI, with full functional toolbar for operating over archives and status bar displaying available information and messages. For opening multi volume files or archives the first volume (the one with .001 extension) must be selected as input file; for multi volume PEA archives the volume with extension .000001.pea must be selected as input file. Archive browser supports drag and drop from system to application, objects dragged into the archive browser will be added to the current archive if the archive type allows modifications. In example, it will not be possible adding objects to archive types supported only for reading or to some solid archives. If a single archive file is dragged to the archive browser PeaZip will show a disambiguation popup to ask if adding the object to the archive or rather opening it (and close the current archive).

Image 10: Open panel options (zip format archive) In the browser area, folder objects are highlighted in light orange and have the folder icon on the left, such objects can be opened for browsing with double-click (as folders in a common file explorer). Archive type objects are highlighted in light green and on double-click can be opened in a separate instance of PeaZip; please note that by default this is a “preview” operation extracting data to a temporary folder.

browser click on a folder to browse it rightclick to activate context menu

titles bar click on the green folder icon to go to upper level click on titles to sort content

archive browser address bar (see Image 11)

toolbar

20

If the archive you are working on is in a PeaZip’s temporary folder, “Extract here” functions will authomatically extract content outside of the temporary path; otherwise you can use “Extract to” functions (see below) which allows you to specify the extraction path. More generally, double-click on any non-folder object will result in a custom operation that may be defined in Tools > Options > Open archive. Those actions are preview (default), extract and open or extract and open with, see below the explanation of those functions in “context menu” paragraphs. The green arrow icon on the left in the browser’s titles bar brings browser up one level; clicking on column’s titles in the title bar sorts displayed objects by the selected column (i.e. name, full (file and path) name, extension, date, size etc), a second click will invert the order. The archive browser’s address bar , image 11, (under the toolbar) can be used for browsing (“Go” green curved arrow button) and for basic search (“Search here” magnifier button) into the archive; * (string) and ? (single character) wildcards are allowed; those basic filters are overridden by advanced filters in “Filters” tab. Home icon (“Go to archive’s root”) brings back to archive’s root, + icon toggles browsing between the flat view , displaying all objects contained in the archive, and classic browser mode. From the flat view is possible to change back to classic browsing style clicking on “Go” or “Up one level” or “root” icons (the application will explore the archive’s root path in the classic mode), or clicking on an history item (will explore the selected path), or double clicking on a folder (will explore the clicked folder) or choosing “Go to object’s path’, form the context menu : if the object is a folder, will explore that folder, otherwise will explore the path the object is in. In Tools > Options > Open archive it is possible to set PeaZip to start archive browser as classic browser, in flat view or to remember last used mode. “History” icon (on the left of the bar) shows the paths browsed in a chronological order, allowing jumping to any of previously visited paths (or any previously applied basic filter) clicking on it. Green arrows back, forward and up can be used to navigate the archive’s structure, respectively to return to previously visited path (or basic filter), to go to next visited path and to go to one level up in the structure. Please don’t forget to see “Keyboard shortcuts ” section below to know how speed up navigation and other operations using keyboard.

Image 11: archive browser navigation bar (Tango theme) The context menu , as in image 10, activated right clicking on the archive browser area, contains also a “Browse archive” submenu, containing entries for navigating the archive like in the address bar. At the top of context menu the “Extract to…” submenu allows to bypass output options and to directly extract all, displayed or selected content to a specified folder. It’s recommended to use ”displayed” selection to operate on all displayed objects rather than extend the selection to all objects, because it’s faster for the user and because it allows to compose the command in a more elegant way, using current filter definition rather than enumerating all objects. “Extract all/displayed/selected” group will change caption according to the requested operation in “Options” tab (i.e. if test or list operation are required instead of extraction) and perform the given operation. This group’s entries will display the output path (by default “here”, since default output for extraction is archive’s path) and both this group and the “Extract to…” submenu entries will display if extraction to a fresh new directory is programmed, according to input/output options requested in “I/O” tab. Performing an “Extract to…” function will change the session default output path (which applies to any extraction function); “Reset extraction path” entry in context menu bring back the output path to the global default (by default, archive’s path). “Extract to new folder: ON/OFF” entry toggles between “Extract to new folder” options: if it’s ON, the extraction process will trigger the creation of a new folder with unique name (based on archive’s name), where to extract all data. The “Extract all” and “Extract all to” buttons on toolbar gives a quicker access to this functions, extracting all the content where specified in I/O tab (extract all) or to the directory specified by the user (extract all to). Please note that the “Extract all” button, and “Extract” entries in menu and context menu, act as a jolly as they can change action according to the function required in Options tab. “Extract and open with…” submenu allows opening the selected object with PeaZip, with associated application, or with a custom application. Behaviour of opening with “associated application” can be further customized in “Tools > Options > Open archive” tab (i.e. extract only, open output path, launch associated application etc…).

history, click for shortcuts to previously visited addresses

toggle between browse view and flat view (see all the archive’s content)

go to archive’s root level

Search: recursively search (current path and subdirs) for the string typed in address bar navigation’s arrows: back, next, up

one level

Go: search non recursively (current path only) for the string typed in address bar

21

Entries in “Preview with…” submenu are closely related to ones in “Extract and open with…”, but those functions will extract selected objects to a temporary folder rather than to the output path, and then take the programmed action on the output. Double-clicking in the archive browser (either in flat or browse mode) is associated to preview with associated application; in “Tools > Options > Open archive” tab, the double-click event can be further customized. When performing any of those actions, the selected object will be, by default, extracted without replicating the directory structure in the archive; if replicating the archive structure is desired uncheck “Always ignore paths for Extract and…” option (see Default options chapter). If the object is a directory paths will not be ignored, this condition overrides all other switches. Output path for extract and open and preview function is the session default output path. “Test” and “Info and list” submenus allows to perform the requested operation (test, list or listing with technical details for info) on all, displayed and selected objects, without the need to change the operation settings in “Options” tab. “Test all” button on toolbar is also featured for a quicker access to the commonly used test all function. The “Modify archive” submenu features options to add or remove objects from the archive: “Add file(s)” and “Add folder” entries in context menu allow to add object into the archive; objects will be archived starting from archive’s root and compressed accordingly to the archive’s settings; please note that if it is possible to store objects with different passwords into the archive (i.e. in .7z format), you can set the desired password(s) in password’s filed each time you add objects. If same object exists in the archive (same name and same path in archive’s directory three), the object will be updated: if the object the user is adding is newer, it will replace the older object; if it’s older, the archive will not be updated. “Delete selected objects” entry will remove selected objects from the archive. Please note that for some archive types, notably most solid archives (i.e. .7z created with solid archive switch enabled), or archive types supported only for browsing extraction (i.e. CAB, RAR…), doesn’t allow neither add/update nor delete operations. “Search on the web” submenu allows searching for the filename on search engine, on blogs, on Wikipedia and on Usenet, in case the user has any doubt or need any information about the object, before extracting it from the archive. “Filters ” tab allows to use multiple inclusion and exclusion criteria, that can recourse or not subdirs of the archive (“Inclusion/Exclusion filters recourse subdirs” options), bypassing the archive browser’s basic filters (address bar is disabled until “Use advanced filters” option is checked); advanced filters will be applied when returning to “Browse” tab. Unchecking the option restores the classic browser mode and brings back to archive’s root.

Image 13: inclusion and exclusion filters tab Multiple filters, one per line, can be written in the inclusion and exclusion fields; string delimiters ( “ on Windows and ‘ on Linux and other *x systems) are not needed to be explicitly entered by the user. In example, if the user needs to extract (or display) only “myfile.txt” plus all files named “your file” and all .mp3 files, but not .mp3 starting with a and m, could write in the inclusion field:

myfile.txt

22

your file.* *.mp3

and in the exclusion field: a*.mp3 m*.mp3

PeaZip’s archive browser has currently two known issues: • being the archive queried at each browsing operation the application will respond slowly if the archive is

accessible through a slow connection, like i.e. a slow or busy network; this issue can be avoided either avoiding this bottleneck or unchecking “Use archive browser” option in “Default parameters” panel; on the other side this allows to not lock the archive and to get a fresh, up to date result each time the archive is queried.

• 7z uses UTF-8 encoding by default; as said in System integration chapter PeaZip support for UTF-8 is still under development so decoding of names of archived objects using extended characters is not straightforward and is accomplished with a workaround using ? wildcard for extended characters (over ANSII code 126, ~ character), that may lead the browser to not accurately present archive’s content (switching the browser to flat view mode may be helpful in some cases). The ability of operate on the whole archive is not affected by this issue.

ACE, PAQ/LPAQ and QUAD archives can be browsed by PeaZip in flat mode only. Archive browser address bar and archive browser context menu are disabled for those archive types; double click to preview/extract and run is enabled when the archive contains a single object (since partial extraction is not supported). As for 7z-supported archives, browsing can be turned off also for PAQ and QUAD archives, turning off the same option in “Default options”. Pea archives and split files, supported through Pea executable, don’t support browsing, flat view and search queries (and doesn’t suffer of aforementioned issues); the archive browser will not be displayed and all supported functions are accessible from the toolbar. Password field allows entering the password to open a password protected archive (types supported through 7z/p7zip); password protected files into the archive will be shown in the archive browser with a ‘*’ appended to filename and if an encrypted archive is detected the password field will be highlighted in yellow if empty. To test browsing of archive after having provided a password, the user can click on the locker icon on the right of the “Password” filed. If the directory structure area is encrypted (i.e. .7z archives created with –mhe option), browsing is not possible until the correct password is provided: the archive browser will be empty and “no matches” will be displayed in the status bar until it becomes possible to browse the archive, having the user provided the right password. If the archive is encrypted and the password is not provided, a popup will ask the user to enter the password when extract/test/list operation are attempted, and then saved to main application’s password field. The password is kept until PeaZip instance is closed (or until modified or blanked in main application’s password field) so it is not needed to re-enter it if working on archives with the same password; each instance of PeaZip can keep a different password. For .pea archives, password and keyfile are entered in Pea executable, not in the frontend PeaZip application. “Options ” tab enable setting advanced job options:

- “Action” group determine the action performed by the extraction routine: o “Extract” extracts archived objects with paths, replicating the directory structure of the input data; o “Extract (without path)” will extract all archived files to the same path; o “List” will show archive’s content; o “List (with details)” will give a more detailed report on archive’s content, the same given by “Info” entries

in context menu. List functions will always be performed in pipe mode (even if 7z option is set to “console mode”), using graphical wrapper in order to make easier reading and saving the report.

o “Test” will perform type specific tests to prove or disprove archive’s integrity. - “Naming policy” combo box determine what the extraction routine will do in case of naming conflict while

extracting data: o “Auto rename extracted files” assign a new unique name to objects being extracted from the archive each

time a naming conflict is encountered; that policy assures that pre-existing objects will keep their names and new ones will get new unique names (default).

o “Auto rename existing files” assures that extracted objects get the desired name while pre-existing objects are renamed with a new unique name.

o “Overwrite existing files” make all pre-existing objects overwritten by extracted objects. o “Skip existing files” assure that pre-existing objects are not touched by the extraction operation, being the

conflicting objects not extracted from the archive. Right-clicking on “Save job” button shows a popup menu allowing to chose if applying the job definition to the whole archive, or, if partial extraction is allowed for the current archive’s format, to selected objects or to the currently displayed objects only. For archives in .pea format the user can chose to restore original file and folder’s attributes (default) or to reset them to system’s default values, so the “Advanced options” panel is less populated than for formats supported through 7z/p7zip executable.

23

“I/O” tab allows to select the output path were extracting the archive; the path selected in “Output path” filed will be used, by default the archive’s path; “Extract to” operations will change this path to the one specified by the user. The output path specified in output path field is kept until the PeaZip instance is closed (different instances of the program can point to different output paths) so in case of different archives to be extracted to the same path it is required to select it only once per working session; the default output path can be permanently set in Tools > Options > Open archive; configuration file is parsed at program’s start-up so any change to configuration will apply to current and future program’s instances. “Extract to new folder”, if checked, triggers the creation of a fresh new folder with unique name (based on archive’s name), where to extract all data. Input information group in the same tab allows to select input archive (however selecting “Open” action the user was jet asked the name of the archive to open) and gives information about the archive (depending on the archive type), like the status (if tested), the total size (compressed content size plus header areas), the content (files, uncompressed size, compressed size).

Image 13: input/output options tab; input information area shows graphically the compression level of the current path or filter (lower bar) and of the archive (upper bar), being 100% equal to the width of input name field; additional information is given in status bar (about the current directory or filter) and in the application’s title bar (about the whole archive). Note about ACE archives Unace may require to interactively respond to some warning messages extracting archives (i.e. if an object with this name jet exists in the output path), or to enter a password for handling an encrypted archive. If the console is not available for user’s input (as when calling unace through gwrap executable), the feedback cannot be entered and the application would freeze waiting for feedback. To avoid this possible stall situation unace extraction and test operations are always called in console mode by PeaZip, while listing operations, as for all other formats, are always launched in graphical mode of operation to offer better output information handling (and since naming conflict and password request conditions cannot be encountered in list mode). To run test on ACE archive it’s recommended to save the command line as text and then execute it as command line or as script, in order to don’t get the console’s window closed after the operation completes. Please note that from PeaZip 1.9.1 the program’s base packages contain only open source software, so handling ACE archives, which happens through closed source software (even if royalty free), will require installing a separate plugin (see application’s website) as described in “Plugin” chapter. Trying to open an ACE archive without the plugin installed will result in a warning message to remember that the UNACE plugin is required. Note about .exe files Some Windows executables (7-Zip’s sfx, NSIS installers, some MSI installers) can be browsed by PeaZip archive browser (using 7z as backend); to understand how PeaZip tries to treat .exe files in different situation remember that:

• from system’s file browser, sending a single .exe file (or any other single file of a supported type) to PeaZip result in PeaZip treating it like an archive, trying to browse it;

• from system’s file browser, sending multiple files to PeaZip result in PeaZip opening “create archive “ interface;

24

• form Windows SendTo menu, it is possible to chose if sending single or multiple files of any type (even of mixed types) to “create archive” (+ links) or directly to extract procedure (- links) in both cases without having to deal with PeaZip’s UI;

• from “archive browser” .exe files are highlighted as supported archive types, sending them to “Extract and run” (from context menu) results in PeaZip asking the user if running the Windows executable (Yes) or (No) opening it in PeaZip as an archive, trying to browsing it.

Keyboard shortcuts Open archive interface supports following keyboard shortcuts: Go to archive’s root Ctrl+R or Esc Toggle browse/flat view Ctrl+V Open directory (browse mode) < or doubleclick (if the object is a directory) Up one level Ctrl+U or > or click on green folder icon (top left corner of the browser) Extract all content Ctrl+A Extract displayed content Ctrl+D Extract selected content Ctrl+S Extract to… functions same as previous ones, using Ctrl+Alt+A/D/S Test all Ctrl+T Extract and open with PeaZip Ctrl+Z Extract and open with default application Ctrl+O Extract and open with … Ctrl+W Preview functions same as previous ones, using Ctrl+Alt+Z/O/W Go to object’s path Ctrl+P (useful in flat or search mode)

Other utilities PeaZip aims to collect also file utilities which are non strictly archiving-related but still handy in an application of that type. Those utilities are accessible from “File” menu in main menu and form “Layout composer” interface (to work on files added to the current archive’s layout), in “Tools” submenu in context menu. File wipe is intended for secure file deletion; through Pea executable it accepts multiple files (not directories) as input and provides multiple overwriting of file data with random data stream (AES256 CTR) forcing flush to disk each time, then replacement of content with randomly sized random data to fake file size, and multiple renaming of the file with random string. Please use it carefully since wiped data will reasonably be not recoverable with known means. Anyway please note that secure file deletion doesn’t overcome any known risk of data leakage, since may exist copies of the data as temporary files saved by application that accessed the file, or as not securely deleted older version of the file, or cached by the system: wiping a file cannot affect that data, which can be recovered with software utilities or specific hardware probes. Moreover, flash based storage usually re-allocates sectors for writing transparently for the software, in order to reduce unit’s wear since flash units have a shorter lifespan in terms of writes; this doesn’t allow to efficiently physically overwrite original content, reducing the efficiency of file wiping. In those cases only wiping the whole disk would be effective, but this can be very time consuming and, for flash based disks, it will lead to fast wear and reduced lifespan of devices (complete disk wipe is currently not implemented PeaZip’s file wipe procedure). Compare files performs byte to byte comparison between two files; unlike checksum or hash based comparison byte to byte comparison can spot exactly what are the different bytes and it is not susceptible of collisions under any circumstance, even if this condition is highly improbable and very difficult or not practically possible to trigger if a proper hash function is chosen.

Graphic wrapper Job’s graphic wrapper (gwrap executable in /res/ path) is a component which graphically displays an underlying job performed by a console-based application used by PeaZip to create, extract, test or list an archive. Pea executable, having its own graphical UI, doesn’t rely on gwrap. Gwrap can use pipes, allowing logging the console application’s output, or not using pipes, which results in a much more responsive UI and in a more synthetic job log. Graphical wrapper is not invoked if jobs are running in console interface, either because they need to run in console (UNACE, UPX) or because the user selected to use “Console interface” in program’s options; however list and test always run in graphic wrapper mode using pipes (to give detailed job log) even if a different mode is set as default. Until job completition, following control and information elements are shown:

• start date and time, displayed in title bar;

25

• approximate progress indicator is shown; • “Pause” button, which allows to put job in sleep and to resume it when desired; • “Stop” button terminates the underlying process and will not undo what was done until that moment, leaving the

job log and the partial outcome of the job available for further inspection; • on the lower left corner of the application a graphic shows job’s process priority, rightclicking the image displays a

popup menu allowing to change job’s priority from idle to real time; • “Close this window when job completes” option is set from PeaZip’s “Default options” and trigger gwrap window to

close after job completition, this behaviour can be overridden for each gwrap instance checking and unchecking the option’s checkbox;

• “Halt system when job completes” option can be set in gwrap to make the system shutdown after completition of the present job (useful for long jobs, such backup operations).

After the job completition the user can open the output path (except for list and test operations, which gives no output), save job definition, which is the command line gwrap redirected to the underlying console application (can be useful for learning purpose or to speeding up the creation of scripts), and save the job log.

Image 16: gwrap running; icon in the bottom left corner shows the process priority (rightclick to change it), on the right pause button allows to pause/resume the job and stop button halts it.