Double Commander peut traiter les fichiers compressés comme de simples dossiers.
Par exemple, si nous avons un fichier ZIP dans un panneau, nous pouvons simplement le sélectionner, appuyer sur Entrée, et le panneau affichera le contenu du ZIP, tout comme si nous avions basculé dans un répertoire.
Double Commander est très flexible et peut utiliser des programmes externes via sa propre interface pour traiter les fichiers compressés. Il utilise deux principes différents pour cela :
Lorsque nous tentons d'ouvrir un fichier d'archive, Double Commander vérifie d'abord la liste des greffons d'archivage (packer plugins) disponibles.
Une fois à l'intérieur d'un fichier compressé, nous pouvons effectuer certaines fonctions de base comme visualiser un fichier, le copier vers l'autre panneau, ainsi que quelques fonctions limitées.
L'image ci-dessous montre un exemple où nous avons sélectionné le fichier compressé "help.rar" puis appuyé sur Entrée comme s'il s'agissait d'un répertoire :

Après avoir appelé la commande Visualiser (F3) ou Éditer (F4), Double Commander extraira le fichier sous le curseur vers le répertoire système des fichiers temporaires et l'ouvrira. Une fois le visionneur fermé, le fichier temporaire sera supprimé. Si le fichier ouvert dans l'éditeur est modifié, Double Commander proposera de le ré-archiver (si le format de compression et le greffon ou l'outil externe supportent cette fonction).
En utilisant le double-clic ou la touche Entrée, Double Commander affichera la fenêtre des propriétés du fichier archivé :

La ligne Archiveur affiche le nom du greffon d'archivage utilisé ou le nom de l'archiveur externe.
Boutons :
Fermer – fermera la fenêtre des propriétés.
Décompresser et exécuter – Double Commander extraira le fichier sous le curseur vers le répertoire système des fichiers temporaires et appellera l'action par défaut définie dans les associations de fichiers internes ou système.
Tout décompresser et exécuter – similaire au précédent, mais extraira d'abord tout le contenu de l'archive.
Double Commander permet de configurer l'ouverture automatique des fichiers dans l'application associée en utilisant <AutoExtractOpenMask>.
À la fermeture, Double Commander supprime tous les fichiers temporaires.
Nous pouvons configurer Double Commander pour utiliser des fichiers externes "packer plugin" afin de gérer les archives compressées.
Dès l'installation, Double Commander inclut déjà certains de ces fichiers greffons .WCX.
De plus, il en existe d'autres sur le Web. Vous pouvez rechercher des greffons .WCX.
Gardez également à l'esprit que les greffons conçus pour Total Commander peuvent également, pour l'essentiel, être utilisés dans Double Commander.
Pour les installer, les activer ou les configurer, nous devons aller dans Configuration > Options... > Greffons > Greffons WCX :

Veuillez noter que certains formats sont en lecture seule, ce qui signifie que vous pouvez seulement visualiser le contenu, extraire et tester.
Parfois, il n'existe pas de greffon pour le type de fichier d'archive que nous voulons utiliser.
Ou pour n'importe quelle raison, nous pouvons parfois souhaiter explicitement utiliser un archiveur externe pour bénéficier de caractéristiques et fonctions non présentes dans un greffon.
Double Commander utilise un principe de fonctionnement similaire au greffon MultiArc de Total Commander pour gérer les archiveurs externes.
En résumé, l'utilisation d'archiveurs externes peut être résumée ainsi : c'est un moyen de lancer l'archiveur que nous connaissons bien, mais piloté par Double Commander en fournissant divers paramètres à l'exécutable de l'archiveur pour qu'il se comporte comme s'il était intégré à l'application.
Le reste de cette page traitera de cette question : comment configurer Double Commander pour lancer l'archiveur externe afin d'effectuer les actions dont nous avons besoin.
Supposons que nous voulions utiliser "rar.exe" pour traiter les archives .rar.
Comme nous pouvons le deviner, l'essentiel est que nous devions configurer comment appeler l'archiveur externe pour être capable de...
Cela se fera via les options de configuration de l'archiveur, comme montré dans l'image ci-dessous :

Tous les paramètres sont stockés dans le fichier multiarc.ini.
Dans les sections suivantes, nous verrons les diverses possibilités offertes par Double Commander pour intégrer correctement l'utilisation d'archiveurs externes.
Nous ne décrirons pas chaque champ ici car c'est assez intuitif une fois lancé, mais nous prendrons le temps de décrire en détail un exemple d'intégration.
Nous décrirons l'intégration de l'archiveur externe "rar.exe". Rien ne vaut un exemple complet étape par étape.
Nous cliquons sur le bouton "Ajouter" en bas, donnons un nom significatif à l'archiveur et nous pourrons ensuite le configurer.

Nous devrons ensuite spécifier une description significative pour l'archiveur, l'emplacement exact de l'exécutable de l'archiveur, puis les extensions de fichiers (sans le point) associées à cet archiveur.
Si nous avons plusieurs extensions, séparez-les simplement par une virgule sans espace.

Remarque : Double Commander supporte les doubles extensions (par exemple, "tar.gz", "tar.xz", etc.), elles doivent être placées au début de la liste des extensions (c'est-à-dire "tar.gz" avant "gz").
Comme mentionné précédemment, nous devrons configurer comment appeler l'exécutable de l'archiveur externe pour effectuer les actions souhaitées.
Pour nous aider à faire cela, Double Commander met à notre disposition de nombreuses variables dédiées pour remplir les chaînes de configuration des diverses opérations que nous pouvons configurer.
Le tableau ci-dessous présente les variables utilisables et ce par quoi elles seront remplacées :
| Définition des commandes | |
|---|---|
| Expression de variable | Signification |
%P | Nom long de l'archiveur (tel qu'il apparaît dans la clé "Archiver") |
%p | Nom court de l'archiveur (tel qu'il apparaît dans la clé "Archiver") |
%A | Nom long du fichier d'archive |
%a | Nom court du fichier d'archive |
%L | Nom de la liste de fichiers. Une liste de fichiers est un fichier contenant les noms des fichiers à traiter par l'archiveur externe. Les noms de fichiers sont longs. |
%l | Fichier de liste contenant les noms de fichiers courts |
%F | Nom d'un seul fichier à traiter. L'archiveur sera exécuté plusieurs fois jusqu'à ce que tous les noms de fichiers soient traités. Cette variable ne doit être utilisée que si l'archiveur cible ne supporte pas les listes de fichiers en ligne de commande. |
%V | Taille de volume (pour les archives multi-volumes) |
%W | Mot de passe |
%E<errorlevel> | Niveau d'erreur (errorlevel) maximal acceptable pour la commande. Par exemple, %E2 signifie que les niveaux d'erreur 0, 1 et 2 sont tous acceptables.Cette variable peut être spécifiée n'importe où dans la commande. Si absente, seul le niveau d'erreur 0 est considéré comme un succès. |
%O<modificateur> | Par défaut, Double Commander convertit la sortie de l'archiveur de l'encodage OEM vers l'UTF-8. Utilisez cette option pour écraser l'encodage. Voir les modificateurs d'encodage possibles ci-dessous. Ne peut être utilisé qu'avec l'opération "Liste". |
%R | Sous-répertoire cible dans l'archive |
{} | Si certaines variables sont entourées d'accolades, elles ne seront ajoutées que si la variable contient un contenu non vide. |
%S | Cette variable spécifie l'emplacement des paramètres de ligne de commande additionnels qui peuvent être ajoutés dans le dialogue de compression de fichiers. |
Ne vous inquiétez pas, nous donnerons des exemples plus tard pour mieux comprendre.
Ces modificateurs peuvent être spécifiés immédiatement après la variable, sans espace.
| Modificateurs de variables | |
|---|---|
| Lettre du modificateur | Signification |
F | Inclure seulement les fichiers dans la liste de fichiers (peut être utilisé avec les variables %L et %l) |
Q | Entourer de guillemets les noms contenant des espaces |
q | Entourer tous les noms de guillemets |
W | Utiliser seulement les noms, sans le chemin |
P | Utiliser seulement le chemin, sans le nom |
A | Utiliser l'encodage système ANSI sous Windows ou l'encodage système par défaut sous Unix (généralement UTF-8 dans les distributions GNU/Linux) ; peut être utilisé avec les variables %L et %O |
U | Utiliser l'encodage UTF-8 ; peut être utilisé avec les variables %L et %O |
Encore une fois, ne vous inquiétez pas, nous donnerons des exemples plus tard.
Si nous voulons que Double Commander traite un fichier d'archive compressé comme un répertoire, nous devons être capable d'obtenir la liste des fichiers contenus dans l'archive.
À ce stade, nous n'avons pas besoin de décompresser ! Non, il s'agit juste de lister ce qu'il contient pour que Double Commander nous en affiche le contenu.
Dans notre exemple "rar.exe", si nous regardons sa documentation, il existe une commande "v" qui nous permet de demander à l'application console "rar.exe" d'afficher la liste des fichiers de l'archive :

Donc, suivant l'usage de l'application, pour obtenir la liste des contenus d'une archive, nous devons appeler "rar.exe" avec la commande "v", suivie du nom de l'archive.
Testons d'abord manuellement en essayant d'afficher le contenu du fichier "E:\Temp\just.rar" :

Ce que nous devons faire maintenant est donc de configurer "Liste" pour dire à Double Commander comment appeler "rar.exe" pour obtenir le contenu de l'archive compressée.
Pour faire cela, nous allons réécrire la même chose que ce que nous venons de faire, mais en utilisant les variables et les modificateurs de variables mentionnés précédemment.
Voici à quoi cela ressemble :
![]()
Nous avons écrit %P v %AQ, en utilisant les variables et modificateurs mentionnés plus haut.
Tout cela sert donc à appeler l'archiveur externe avec les paramètres appropriés.
Cette fonction sera utilisée lorsque nous utilisons la commande interne cm_OpenArchive.
Une petite remarque sur l'option "Utiliser le nom d'archive sans extension comme liste" : cette option est destinée aux archives qui ne peuvent contenir qu'un seul fichier et dont le nom de fichier est égal au nom de l'archive sans extension (Bzip2, XZ, etc.). Ce genre de fichiers compressés ne contient généralement pas le nom du fichier original.
Ce que nous avons fait jusqu'à présent permettra à l'archiveur de sortir la liste des fichiers à l'intérieur du fichier d'archive.
Mais ce n'est pas tout ! Nous devons récupérer ces données de sortie et les afficher dans le panneau.
Nous devons donc faire en sorte que Double Commander interprète ce tableau de sortie que la commande de l'archiveur va générer.
Comme nous l'avons vu dans la capture d'écran précédente, la sortie du contenu de "rar.exe" n'est pas seulement faite de données brutes.
Il y a des informations gênantes à éliminer pour ne garder que la liste réelle des fichiers.
Heureusement, nous pouvons configurer une chaîne magique pour que Double Commander attende de voir cette chaîne avant de commencer l'analyse de la ligne suivante.
De même, nous pouvons configurer une chaîne magique pour arrêter l'analyse.
Comme il y a des lignes de pointillés avant et après, il est facile de régler ces deux paramètres avec des pointillés :

Si l'archiveur externe sort immédiatement des données brutes sans lignes additionnelles, laissez simplement les deux champs vides.
Le symbole caret ("^") signifie que la chaîne magique doit être absolument au début de la ligne, sans rien devant elle. Sinon, le texte peut se situer n'importe où dans la ligne.
S'il n'est pas possible de déterminer qu'elle commence à la ligne, par exemple si l'archiveur externe affiche la date et l'heure au début de la ligne puis une chaîne constante, nous réglerons la chaîne magique sur la chaîne constante mais nous n'ajouterons pas le caret, ce qui indique à Double Commander que la chaîne peut être recherchée n'importe où.
Si la chaîne "Fin de liste" peut être confondue avec un nom de fichier, cela pourrait arrêter le traitement du contenu de l'archive prématurément.
C'est pourquoi, si possible, il est préférable de spécifier que la chaîne doit commencer à la ligne.
De plus, s'il y a un moyen de régler la chaîne "Fin de liste" aussi longue que possible tout en restant constante, c'est encore mieux et plus sûr pour être certain qu'aucune confusion n'arrivera dans le futur.
Maintenant, Double Commander sait quelles données analyser pour obtenir la liste des fichiers du fichier d'archive.
Il aurait été facile d'écrire une routine pour analyser la sortie de "RAR" afin d'obtenir la liste des fichiers.
Mais Double Commander ne fait pas cela.
À la place, il offre une grande flexibilité en nous proposant de configurer nous-mêmes le tableau d'analyse !
C'est peut-être un peu plus complexe que de ne rien avoir à faire, mais d'un autre côté, cela nous donne une flexibilité maximale pour pouvoir utiliser des archiveurs externes dont les développeurs de Double Commander ne connaissent même pas l'existence !
Pour nous aider à analyser le tableau de sortie généré par l'archiveur, nous aurons diverses expressions représentées par des lettres.
Le tableau ci-dessous donne la "syntaxe standard" utilisée pour analyser la liste des contenus générée par l'archiveur externe.
Comme nous le verrons dans l'exemple suivant, la "syntaxe standard" est essentiellement basée sur des remplacements plus directs que la "syntaxe avancée".
Si possible, nous essaierons d'utiliser cette syntaxe car les résultats de l'analyse sont plus rapides qu'avec la "syntaxe avancée" qui suit.
| Analyse syntaxique standard | |
|---|---|
| Expression | Signification |
n | Nom du fichier |
z | Taille non compressée |
c | Description du fichier |
p | Taille compressée |
d | Jour |
t | Mois |
TTT | Nom du mois en trois lettres (Jan, Feb, Mar, ...) |
y | Année |
h | Heure |
H | Lettre de modificateur d'heure (a – heure AM, p – heure PM) |
m | Minutes |
s | Secondes |
a | Attributs |
e | Extension du fichier |
? | Sauter un symbole |
* | Sauter jusqu'au premier espace ou jusqu'à la fin de la ligne |
+ | Pour le champ de nom en fin de ligne : utiliser tous les caractères jusqu'à la fin de la ligne |
Si l'archiveur utilise plusieurs lignes pour afficher les informations de chaque fichier, nous devons spécifier le nombre de lignes correspondant pour analyser le contenu (Double Commander supporte jusqu'à 50 lignes).
La clé ici est d'utiliser les expressions du tableau ci-dessus pour écrire une chaîne de "Format de liste" qui configurera Double Commander pour traiter l'archiveur externe afin d'être capable de récupérer le contenu de l'archive, incluant les noms de répertoires et de fichiers, les tailles de fichiers, les attributs, les dates de fichiers, etc.
La méthode que nous devinerons d'abord consiste à écrire une ligne de texte dans un programme comme le Bloc-notes représentant le fichier que nous avons créé manuellement précédemment, puis d'écrire en dessous les expressions qui correspondent.
Voici un exemple :

Comme nous pouvons le voir, nous avons écrit les lettres d'expression d'analyse qui correspondent exactement aux positions de ce que l'archiveur externe a sorti dans l'archive :
Nous avons également dû exclure les 4 espaces au début de la ligne en les remplaçant par "????".
Configuré ainsi, si nous sélectionnons notre archive "just.rar" précédemment vue dans un panneau et appuyons sur Entrée pour y entrer comme s'il s'agissait d'un répertoire, nous verrons que les contenus des fichiers montrent que notre approche est fondamentalement valable (si nous ignorons le dernier fichier...) :

Le tableau ci-dessous donne la "syntaxe avancée" utilisée pour analyser la liste des contenus générée par l'archiveur externe.
Les éléments de cette syntaxe prennent un peu plus de temps à être traités que ceux du tableau précédent.
Utilisez-les donc seulement si vous ne parvenez pas à résoudre un cas problématique avec la méthode précédente.
Un exemple d'utilisation sera donné dans la section suivante.
| Analyse syntaxique avancée | |
|---|---|
| Expression | Signification |
+ | Pour un champ de nom qui n'est pas en fin de ligne : utiliser tous les caractères jusqu'au prochain espace |
+ | Après n'importe quel champ numérique : utiliser tous les chiffres jusqu'au premier caractère non numérique |
n+ | Utiliser tous les caractères jusqu'à la fin de la ligne comme nom de fichier |
z+ | Utiliser tous les chiffres jusqu'au premier caractère non numérique comme taille non compressée |
p+ | Utiliser tous les chiffres jusqu'au premier caractère non numérique comme taille compressée |
$ | Sauter tous les espaces/tabulations jusqu'au caractère suivant ou jusqu'à la fin de la ligne |
\ | Les données continuent sur la ligne suivante (supporte jusqu'à 2 lignes) |
x | Exactement 1 espace ; si un caractère différent se trouve à cette position, ignorer toute la ligne |
z=1024 | La taille non compressée est multipliée par la valeur donnée (ici : 1024) |
p=1024 | La taille compressée est multipliée par la valeur donnée (ici : 1024) |
L'exemple de la "syntaxe standard" était une bonne intuition, mais il n'est pas parfait.
Il y a des cas où il ne fonctionnera pas correctement.
Pour les très gros fichiers, la taille du fichier est plus large que prévu, et donc notre premier essai de liste échouera.
Regardez notre fichier 007 Skyfall.TS.
Nous pouvons voir qu'il n'affiche pas les informations appropriées. Comparons :

Nous voyons donc que les informations pour le nom de fichier, la taille du fichier, la date, etc. sont incorrectes.
Utilisons les éléments de la "syntaxe avancée" pour résoudre ce cas problématique.
Voici comment faire pour que cela fonctionne, même si les champs de sortie n'ont pas toujours *exactement* la même largeur :
![]()
C'est un peu plus complexe mais facile à décrire, et finalement, nous verrons que ce n'est pas si compliqué à générer.
Voici une description en couleur pour nous aider à visualiser chaque petit morceau de l'analyse :

Ainsi, avec cette chaîne de "Format de liste", nous pouvons tester à nouveau et obtenir un résultat correct, même pour les très gros fichiers :

En utilisant les variables et les modificateurs de variables mentionnés précédemment, voici la ligne pour configurer comment appeler l'archiveur externe pour "extraire" des fichiers ou tous les fichiers de l'archive sélectionnée.
Continuant notre exemple "rar.exe", nous savons par sa documentation que l'utilisation de la commande "e" signifie que nous voulons extraire un fichier ou un groupe de fichiers.
Avec "rar.exe", nous pouvons également fournir une liste de fichiers à extraire en paramètres.
Nous utiliserons donc la variable %L que Double Commander nous fournit, laquelle créera un fichier texte contenant le nom de chaque fichier sélectionné dans le panneau actif à extraire, et passera ce fichier de liste unique comme paramètre.
Voici la ligne que nous avons configurée pour l'extraction avec "rar.exe" :
![]()
La description de cet exemple est :
Cette commande sera appelée lorsque nous sélectionnons une archive pour en extraire tout le contenu, un seul fichier, etc.
Nous ne nous en rendons peut-être pas compte, mais lorsque nous "entrons" dans une archive comme s'il s'agissait d'un répertoire et que nous appuyons sur F3 pour visualiser le contenu d'un fichier dans l'archive, cette opération "extraire" sera effectuée en arrière-plan. Le fichier sélectionné sera extrait vers le répertoire système des fichiers temporaires en utilisant ce mode, et nous visualiserons ensuite ce fichier temporaire avec le visionneur appelé par F3.
Cette fonction sera utilisée lorsque nous utilisons la commande interne cm_ExtractFiles.
En utilisant les variables et les modificateurs de variables mentionnés précédemment, voici la ligne pour configurer comment appeler l'archiveur externe pour "archiver" des fichiers ou ajouter tous les fichiers à l'archive sélectionnée.
Continuant notre exemple "rar.exe", nous savons par sa documentation que l'utilisation de la commande "a" signifie que nous voulons créer une archive ou ajouter un fichier ou un groupe de fichiers à une archive existante.
Avec "rar.exe", nous pouvons également fournir une liste de fichiers à ajouter en paramètres.
Nous utiliserons donc la variable %L que Double Commander nous fournit, laquelle créera un fichier texte contenant le nom de chaque fichier sélectionné dans le panneau actif à ajouter à l'archive, et passera ce fichier de liste unique comme paramètre.
Voici la ligne que nous avons configurée pour la création ou l'ajout d'archive avec "rar.exe" :
![]()
La description de cet exemple est :
Cette commande sera appelée lorsque nous sélectionnons un fichier ou un groupe de fichiers et demandons de les archiver en utilisant l'archiveur externe "RAR".
Cette fonction sera utilisée lorsque nous utilisons la commande interne cm_PackFiles.
Certains types de formats de fichiers compressés supportent la possibilité de supprimer un fichier directement à l'intérieur du fichier compressé.
Si cette caractéristique est supportée, nous pouvons configurer Double Commander pour lui indiquer comment appeler l'archiveur externe pour effectuer cette opération.
Le cas typique d'utilisation de cette commande est lorsque nous entrons dans l'archive, y sélectionnons un fichier et cliquons pour le supprimer.
Si cette "Opération de suppression" est configurée, elle sera utilisée pour cette action.
Veuillez noter que cette opération se trouve dans le second onglet de la configuration de l'archiveur externe.
Continuant notre exemple "rar.exe", voici comment configurer cette action :
![]()
La description de cet exemple est :
Certains archiveurs permettent de vérifier l'intégrité de l'archive pour s'assurer qu'il n'y a pas d'erreur à l'intérieur, pour s'assurer qu'elle n'est pas corrompue.
Si cette caractéristique est supportée, nous pouvons configurer Double Commander pour lui indiquer comment appeler l'archiveur externe pour effectuer cette opération.
Continuant notre exemple "rar.exe", voici comment configurer cette action :
![]()
La description de cet exemple est :
Cette fonction sera utilisée lorsque nous utilisons la commande interne cm_TestArchive.
S'il n'y a pas d'erreur, la fenêtre de test se fermera. S'il y a une erreur, un message comme celui-ci apparaîtra :

Par défaut, lorsque nous appelons la commande interne cm_ExtractFiles pour extraire une archive, si les fichiers à l'intérieur sont organisés selon une structure de répertoires spécifique, l'archiveur recréera la même structure lors de l'extraction des fichiers.
Cependant, quand l'archiveur le supporte, il est parfois approprié d'extraire tous les fichiers au même endroit sans recréer la structure des répertoires.
C'est là qu'intervient la configuration de l'opération "Extraire sans chemin".
Par exemple avec "rar.exe", la commande pour effectuer cette action s'écrirait sous cette forme :
![]()
La description de cet exemple est :
Cet effet sera visible dans la demande de confirmation lorsque nous demandons l'extraction de l'archive :

Certains archiveurs peuvent créer des fichiers compressés "auto-extractibles".
Cela signifie qu'à la fin du processus, nous obtiendrons un fichier exécutable qui, lorsqu'il sera exécuté, décompressera le contenu qu'il contient.
C'est utile quand nous voulons être sûrs que la personne qui aura besoin du contenu compressé n'aura aucun problème pour le décompresser : rien à installer, juste exécuter le fichier et on obtient les fichiers décompressés !
Généralement, cette opération est configurée de la même manière que "l'Opération d'ajout", nous ajoutons juste un paramètre signifiant que nous voulons que le résultat final soit auto-extractible.
C'est le cas par exemple pour notre exemple "rar.exe". Voici comment configurer cette action :
![]()
La description de cet exemple est :
Pour créer un fichier auto-extractible, notez que le processus est le même que d'habitude pour créer un fichier compressé, comme en utilisant la commande interne cm_PackFiles, mais dans la demande de confirmation qui apparaît, nous cocherons l'option "Créer une archive auto-extractible".

On peut configurer Double Commander pour qu'il ignore l'extension d'un fichier mais tente de détecter un fichier d'archive compressé par son contenu interne, puis appelle les commandes appropriées de liste et de décompression décrites ci-dessus.
C'est ici que nous utiliserons la commande interne cm_OpenArchive.
Un exemple de cette fonctionnalité est quand nous voulons voir le contenu réel d'un fichier .exe auto-extractible sans avoir à le lancer.
Un autre exemple est de voir une archive sauvegardée sous une extension de fichier différente, comme le fichier .docx de Microsoft Word qui est en réalité un fichier ZIP compressé.
Fondamentalement, nous pouvons configurer Double Commander pour détecter des motifs de données stratégiques à des emplacements spécifiques à l'intérieur du fichier sélectionné afin d'identifier l'archive configurée.
Nous appellerons ces motifs des "ID", et cette section traite de leur configuration.
Nous avons trois réglages : ID, Position de l'ID et Plage de recherche de l'ID.
Nous allons indiquer à Double Commander où chercher un motif d'ID spécifique pour identifier le type d'archive, puis utiliser les commandes configurées relatives au type d'archive identifié.
Commençons par un exemple simple. Voici un instantané du début d'une archive 7-Zip :

En regardant d'autres fichiers 7-Zip, nous voyons que les six premiers octets sont toujours la séquence 0x37 0x7A 0xBC 0xAF 0x27 0x1C.
Nous allons donc tirer profit de cela et configurer Double Commander pour qu'il suppose que le fichier est une archive 7-Zip lorsqu'il voit un fichier commençant par cette séquence.
C'est ce que nous avons fait avec la configuration suivante :

Nous devons écrire l'ID sous forme de nombres hexadécimaux à 2 chiffres séparés par des espaces.
La Position de l'ID (optionnelle) est l'emplacement de l'ID dans l'archive. Si absente, l'ID sera cherché au début de l'archive. On peut définir la position avec le symbole "-" : dans ce cas, l'emplacement sera calculé à partir de la fin du fichier. La valeur spéciale <SeekID> détermine la recherche de l'ID (s'il n'est pas trouvé à la valeur numérique de la Position de l'ID). La recherche se fait dans la plage "0 .. taille du fichier" ou "0 .. Plage de recherche de l'ID". Les valeurs peuvent être écrites en décimal (12345) ou en hexadécimal (0x3039). Pour les valeurs négatives, utilisez le symbole 0xFFFFFFFF (-1).
La Plage de recherche de l'ID (optionnelle) est le nombre d'octets de recherche de l'ID quand <SeekID> est défini. Par défaut, elle est de 1 Mo.
Remarque : Tous les paramètres ci-dessus peuvent définir plusieurs valeurs. On peut utiliser une virgule pour séparer ces valeurs multiples.
Dans notre exemple d'archive 7-Zip, l'ID et la Position de l'ID (0, car au début du fichier) suffisent.
Ainsi, lorsque nous appellerons la commande interne cm_OpenArchive, Double Commander scannera le contenu du fichier et si le motif "0x37 0x7A 0xBC 0xAF 0x27 0x1C" est identifié à l'offset 0 du fichier, il le traitera comme un fichier de type 7Z que nous avons configuré, puis utilisera les commandes et paramètres configurés relatifs au type d'archive identifié pour la liste, l'extraction, etc.
Dans la plupart des cas, il n'est pas nécessaire de vérifier le fichier en représentation hexadécimale : les signatures de fichiers peuvent être trouvées dans les spécifications des formats ou en utilisant des listes, bases de données ou utilitaires existants (par exemple, cette page Wikipédia ou la base de données MIME de FreeDesktop.org).
Les étapes ci-dessus sont généralement suffisantes pour utiliser un archiveur externe, mais au cas où, nous avons encore quelques options :
Afficher la sortie de la console – si activé, Double Commander écrira (ligne par ligne) les résultats du travail de l'archiveur externe et de l'analyseur dans la fenêtre du journal.
Mode débogage – similaire à l'option précédente, mais les résultats du travail seront également sortis dans les messages de débogage de Double Commander (voir la description de --debug-log). Dans ce cas, les fichiers temporaires contenant les listes de fichiers (%L dans notre exemple) ne sont pas supprimés automatiquement une fois l'opération terminée.
Si l'affichage de la fenêtre du journal est désactivé dans les réglages, elle sera affichée de force et masquée à la fermeture de Double Commander. Les messages ne sont pas sauvegardés dans le fichier journal.
Ce menu contient plusieurs fonctions additionnelles :
Auto-configuration – Double Commander vérifiera les exécutables de tous les archiveurs : si le fichier est trouvé, le programme ajoutera automatiquement son chemin complet et activera l'archiveur, sinon il désactivera l'archiveur.
Annuler les modifications – réinitialise tous les changements de réglages non sauvegardés.
Trier les archiveurs – trie la liste des archiveurs par ordre alphabétique.
Tout désactiver et Tout activer – active ou désactive tous les archiveurs.
Exporter... et Importer... – nous permet d'exporter et d'importer les réglages des archiveurs (tous les archiveurs ou une partie d'entre eux).
Par défaut, les fichiers dont les extensions sont spécifiées dans les réglages des greffons WCX et des archiveurs externes s'ouvrent comme des dossiers. Pour les ouvrir dans une application associée, nous pouvons utiliser l'élément "Ouvrir" du menu contextuel du fichier (mais dans ce cas, seules les associations de fichiers du système sont utilisées) ou nous pouvons ajouter l'action souhaitée au menu "Actions".
Pour utiliser la touche Entrée ou le double-clic, nous devons changer les réglages.
Nous pourrions simplement supprimer les extensions des réglages, mais dans ce cas les commandes cm_OpenArchive et cm_ExtractFiles deviendraient indisponibles. Une autre façon :
Si vous utilisez des greffons WCX, vous pouvez ouvrir les réglages du greffon, sélectionner l'extension et activer le drapeau "Afficher comme fichier normal (masquer l'icône de l'archiveur)".
Si vous utilisez un archiveur externe pour décompresser des fichiers, vous pouvez remplir les champs utilisant l'ID sans spécifier les extensions de fichiers.
Pour de tels fichiers, Double Commander utilisera les icônes associées au lieu des icônes d'archives génériques.