File: multiarc.html

package info (click to toggle)
doublecmd-help 1.1.30-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 17,812 kB
  • sloc: makefile: 12
file content (618 lines) | stat: -rw-r--r-- 57,514 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
  <head>
    <title>DC - Archive handling</title>
    <link rel="stylesheet" type="text/css" href="doublecmd.css">
    <link rel="shortcut icon" href="../../pixmaps/common/favicon.ico">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>

  <body>
    <a name="topofpage"></a>
    <div class="header"><a href="index.html"><img src="../../pixmaps/common/dclogo2017.png" alt="Double Commander" height="48" width="374"></a>
      <div id="global-nav" class="nav"><a title="Double Commander Home Page" href="https://doublecmd.sourceforge.io/" target="_blank">Homepage</a> | <a title="Double Commander Wiki" href="https://github.com/doublecmd/doublecmd/wiki" target="_blank">Wiki</a></div>
    </div>
    <div class="footer"><div class="nav"><a title="Index" href="index.html">Index</a> | <a title="Previous page" href="directoryhotlist.html">Previous</a> | <a title="Next page" href="toolbar.html">Next</a></div></div>

    <div class="dchelpage">
      <div>
        <h1>2.10. Archive handling</h1>
      </div>

      <div>
        <h2>Content</h2>
        <dl>
          <dt>1. <a href="#workingcomp">Working with compressed files</a></dt>
          <dt>2. <a href="#withplugin">Working with plugins</a></dt>
          <dt>3. <a href="#archivers">Working with external archivers</a></dt>
          <dt>4. <a href="#config">Configuring external archivers integration</a></dt>
          <dd>
            <dl>
              <dt>4.1. <a href="#addingnew">Adding a new external archiver</a></dt>
              <dt>4.2. <a href="#variables">Variables to interface with external archiver</a></dt>
              <dt>4.3. <a href="#modifiers">Variable modifiers with external archiver</a></dt>
              <dt>4.4. <a href="#actionlist">Configuring the "List" action</a></dt>
              <dt>4.5. <a href="#recuperate">Recuperating list of content</a></dt>
              <dd>
                <dl>
                  <dt>4.5.1. <a href="#delimit">Delimiting the area to analyse</a></dt>
                  <dt>4.5.2. <a href="#parsing">Parsing the list of content</a></dt>
                  <dt>4.5.3. <a href="#standardparsing">Standard syntax for parsing</a></dt>
                  <dt>4.5.4. <a href="#standardexample">Example with standard syntax</a></dt>
                  <dt>4.5.5. <a href="#advancedparsing">Advanced syntax for parsing</a></dt>
                  <dt>4.5.6. <a href="#advancedexample">Example with advanced syntax</a></dt>
                </dl>
              </dd>
              <dt>4.6. <a href="#actionextract">Configuring the "Extract" action</a></dt>
              <dt>4.7. <a href="#actionadding">Configuring the "Adding" action</a></dt>
              <dt>4.8. <a href="#actiondelete">Configuring the "Delete" action</a></dt>
              <dt>4.9. <a href="#actiontest">Configuring the "Test" action</a></dt>
              <dt>4.10. <a href="#actionextractnpath">Configuring the "Extract without path" action</a></dt>
              <dt>4.11. <a href="#actionselfextract">Configuring the "Create self extracting archive" action</a></dt>
              <dt>4.12. <a href="#configids">Configuring the "ID's"</a></dt>
              <dt>4.13. <a href="#debug">Debugging</a></dt>
              <dt>4.14. <a href="#other">Menu of the "Other" button</a></dt>
            </dl>
          </dd>
          <dt>5. <a href="#openassociation">Opening an archive file in an associated application</a></dt>
        </dl>
      </div>

      <div>
        <h2><a name="workingcomp">1. Working with compressed files</a></h2>
        <p>Double Commander may work with compressed files just like it would be simple folders.</p>
        <p>For example if we have a ZIP file into a panel, we may simply select it, press <kbd>Enter</kbd> and panel will show the content of the ZIP just like if we would change to a directory.</p>
        <p>Double Commander is versatile enough to use external programs to deal with compressed files through it own interface. It uses two different principles to deal with the compressed files:</p>
        <ul>
          <li>through plugins;</li>
          <li>through exiting external archiver application controllable via command line.</li>
        </ul>
        <p>When we try to open an archive, Double Commander first checks the list of available packer plugins.</p>
        <p>Once "inside" the compressed file, we may do some minimal basic functions like viewing the file, copy it to the other panel and some limited function like that.</p>
        <p>The next following image shows us an example where we selected the compressed file "help.rar" and we simply press <kbd>Enter</kbd> in it just like it would be a directory:</p>
        <p class="figure"><img class="largeimage" title="View archive" alt="View archive" src="images/imgDC/archiveimg1.png" width="768" height="454"></p>
        <p>After calling the view (<kbd>F3</kbd>) or edit (<kbd>F4</kbd>) command, Double Commander will extract the file under the cursor to the system directory for the temporary files and open it. After closing the viewer, the temporary file will be deleted. If the file opened in the editor is changed, Double Commander will offer to pack it back (if the compressed file format and the packer plugin or external archiver support this feature).</p>
        <p>When using a double-click or pressing <kbd>Enter</kbd>, Double Commander will show the properties window of the packed file:</p>
        <p class="figure"><img class="largeimage" title="Properties of packed file" alt="Properties of packed file" src="images/imgDC/archiveimg27.png" width="268" height="316"></p>
        <p>The <span class="italic">Packer</span> line displays the name of the packer plugin used or the name of the external archiver.</p>
        <p>Buttons:</p>
        <ul>
          <li><p><span class="italic">Close</span>&nbsp;&ndash; will close the properties window.</p></li>
          <li><p><span class="italic">Unpack and execute</span>&nbsp;&ndash; Double Commander will extract the file under the cursor to the system directory for the temporary files and call the default action from <a href="configuration.html#ConfigAssociations">internal</a> or system file associations.</p></li>
          <li><p><span class="italic">Unpack all and execute</span>&nbsp;&ndash; like the previous one, but the entire contents of the archive will be extracted first.</p></li>
        </ul>
        <p>Double Commander allows to configure the automatic opening of file in the associated program directly, use <a href="configxml.html">&lt;AutoExtractOpenMask&gt;</a>.</p>
        <p>When closing, Double Commander deletes all temporary files.</p>
        <p class="navback"><a href="#topofpage">(back to top)</a></p>
      </div>

      <div>
        <h2><a name="withplugin">2. Working with plugins</a></h2>
        <p>We may configure Double Commander to use an external "packer plugin" files that will help to deal with a compressed archive.</p>
        <p>Right from the installation, Double Commander already incorporates <a href="plugins.html#wcx">some</a> of these .WCX plugin files.</p>
        <p>Also, there are few others one on the web. We may just search for .WCX plugins.</p>
        <p>Also remember that the ones made to work with Total Commander should also basically work with Double Commander.</p>
        <br>
        <p>To install, enable the usage of them or to configure them, we'll need to access Configuration&nbsp;&gt; Options...&nbsp;&gt; Plugins&nbsp;&gt; Plugins WCX:</p>
        <p class="figure"><img class="largeimage" title="Configuration&nbsp;&gt; Plugins WCX" alt="Configuration&nbsp;&gt; Plugins WCX" src="images/imgDC/archiveimg2.png" width="694" height="380"></p>
        <p><i>Please note that some formats are read-only, meaning only content viewing, unpacking, and testing are available.</i></p>
        <p class="navback"><a href="#topofpage">(back to top)</a></p>
      </div>

      <div>
        <h2><a name="archivers">3. Working with external archivers</a></h2>
        <p>Sometimes the plugin for the type of file archive we want to use does not exist.</p>
        <p>Or for whatever raison, sometimes it might happen we would want explicitly use an external packer to use the benefit of a feature or something not present in the pseudo equivalent plugin.</p>
        <p>Double Commander uses principle of the work with external archivers similar to plugin <a href="http://wcx.sourceforge.net/" target="_blank">MultiArc</a> for Total Commander.</p>
        <p>Just to make things clear, <b>using an external archiver may be summarized as this: it's a way to launch the archiver we may be familiar with but to have it driven by Double Commander, by providing to the archiver executable the various parameters we would need to make it like integrated into the application</b>.</p>
        <p>The remaining of this page will be on this matter: how to configure Double Commander to launch the external archiver to do whatever we need with it.</p>
        <p>Let's suppose we want to use "rar.exe" to deal with .rar archive.</p>
        <p>As we may guess it, the basic things <b>we'll need to configure are how call the external archiver to be able to...</b></p>
        <ul>
          <li>get the list of content of a given archive file;</li>
          <li>extract;</li>
          <li>add one file or a list of file to a given or to-be-created archive file;</li>
          <li>extract one file or a list of file from an archive file.</li>
        </ul>
        <p>This will be done by doing Configuration Options Archiver as illustrated below:</p>
        <p class="figure"><img class="largeimage" title="Configuration&nbsp;&gt; Archivers" alt="Configuration&nbsp;&gt; Archivers" src="images/imgDC/archiveimg3.png" width="756" height="571"></p>
        <p>All settings are stored in the <tt>multiarc.ini</tt> file.</p>
        <p>Let's see in the following sections the versatile possibilities Double Commander offers us to properly integrate the usage of an external packer.</p>
        <p class="navback"><a href="#topofpage">(back to top)</a></p>
      </div>

      <div>
        <h2><a name="config">4. Configuring external archivers integration</a></h2>
        <p>We won't describe here each and every fields since once we've started it will be pretty straight forward, but we'll spend time to properly described an example of integration.</p>
        <p>We'll describe the integration of the "rar.exe" external archiver. There is nothing better than a complete step by step example.</p>
        <p class="navback"><a href="#topofpage">(back to top)</a></p>
      </div>

      <div>
        <h2><a name="addingnew">4.1. Adding a new external archiver</a></h2>
        <p>We click the "Add" button at the bottom, we give a significant name to appear in the list of archiver and then we'll be ready to configure it.</p>
        <p class="figure"><img class="largeimage" title="Add a new external archiver" alt="Add a new external archiver" src="images/imgDC/archiveimg4.png" width="604" height="395"></p>
        <br>
        <p>We then need to indicate us a significant description for the archiver, the exact location where is the executable of the archiver and then associated file extension, without the period, to that archiver.</p>
        <p>If we have more than one possible, just add them with a single comma between each one, no space.</p>
        <p class="figure"><img class="largeimage" title="Add a new external archiver" alt="Add a new external archiver" src="images/imgDC/archiveimg5.png" width="570" height="211"></p>
        <p>Note: Double Commander supports double extensions (for example, "tar.gz", "tar.xz" and so on), they must be placed in the beginning of the list of extensions (i.e. "tar.gz" before "gz").</p>
        <p class="navback"><a href="#topofpage">(back to top)</a></p>
      </div>

      <div>
        <h2><a name="variables">4.2. Variables to interface with external archiver</a></h2>
        <p>As mentioned earlier, we'll need to configure how to invoke our external archiver executable to do what we want.</p>
        <p>To help us to do so, Double Commander offer us numerous dedicated variable to fill the configuration string for the various action we may configure.</p>
        <p>Here follows a table showing the variable that can be used and what will be substituted for it:</p>
        <table>
          <tr class="rowcategorytitle"><th colspan="2">Command definition</th></tr>
          <tr class="rowsubtitle"><th class="namecolumn">Variable expression</th><th class="categorydesccolumn">What it stands for</th></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">%P</div></td><td class="hintcell">Long name of archiving utility (as it is in "Archiver" key)</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">%p</div></td><td class="hintcell">Short name of archiving utility (as it is in "Archiver" key)</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">%A</div></td><td class="hintcell">Long name of archive file</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">%a</div></td><td class="hintcell">Short name of archive file</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">%L</div></td><td class="hintcell">Filelist name.<br>Filelist is the file containing names of files to be processed by the external archiver.<br>File names is long.</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">%l</div></td><td class="hintcell">Filelist with short file names</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">%F</div></td><td class="hintcell">The name of a single file to process.<br>The archiver will be executed several times until all file names are exhausted.<br>This variable should be used only if the destination archiver does not support filelists on the command line.</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">%V</div></td><td class="hintcell">The volume size (for multivolume archive)</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">%W</div></td><td class="hintcell">The password</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">%E&lt;errorlevel&gt;</div></td><td class="hintcell">Maximum acceptable command errorlevel.<br>For example, <code>%E2</code> indicates that errorlevels 0, 1 and 2 are acceptable.<br>This variable may be specified in any place of command.<br>If it is absent, only errorlevel 0 is considered as successful.</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">%O&lt;modifier&gt;</div></td><td class="hintcell">By default, Double Commander convert archiver output from OEM encoding to UTF-8.<br>Use this to override encoding. See below the possible encoding modifiers.<br>Can be used with "List" action only.</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">%R</div></td><td class="hintcell">Target subdirectory IN archive</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">{}</div></td><td class="hintcell">If some variable is enclosed in braces - it'll be added only if this variable will contain something non-empty</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">%S</div></td><td class="hintcell">The variable specifies the position for additional command line parameters that we can add in the <a href="help.html#cm_PackFiles">file packaging dialog</a></td></tr>
        </table>
        <p>Don't worry, we'll give example later to better understand.</p>
        <p class="navback"><a href="#topofpage">(back to top)</a></p>
      </div>

      <div>
        <h2><a name="modifiers">4.3. Variable modifiers with external archiver</a></h2>
        <p>These modifiers may be specified immediately after variables without spaces.</p>
        <table>
          <tr class="rowcategorytitle"><th colspan="2">Variable modifiers</th></tr>
          <tr class="rowsubtitle"><th class="namecolumn">Modifier letter</th><th class="categorydesccolumn">What it stands for</th></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">F</div></td><td class="hintcell">include in FileList only files (can be used with <code>%L</code> and <code>%l</code> variables)</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">Q</div></td><td class="hintcell">quote names with spaces</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">q</div></td><td class="hintcell">quote all names</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">W</div></td><td class="hintcell">use name only, without path</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">P</div></td><td class="hintcell">use path only, without name</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">A</div></td><td class="hintcell">use the ANSI system encoding in Windows or the default system encoding in Unix-like systems (in GNU/Linux distributions it is usually UTF-8); can be used with <code>%L</code> and <code>%O</code> variables</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">U</div></td><td class="hintcell">use UTF-8 encoding; can be used with <code>%L</code> and <code>%O</code> variables</td></tr>
        </table>
        <p>Again don't worry, we'll have example later on.</p>
        <p class="navback"><a href="#topofpage">(back to top)</a></p>
      </div>

      <div>
        <h2><a name="actionlist">4.4. Configuring the "List" action</a></h2>
        <p>If we want Double Commander to work with the compressed archive file like it would be a directory containing files, we need to be able to get the list of file that the archive has.</p>
        <p>At this point, we don't need to uncompress! No, it's just a matter of doing the list of what it contains so Double Commander will show the content to us.</p>
        <p>In our example with "rar.exe", it we look at the documentation of it, thre is the "v" command that allow us to get the console application "rar.exe" to give out the list of files inside the archive:</p>
        <p class="figure"><img class="largeimage" title="rar.exe: launch options" alt="rar.exe: launch options" src="images/imgDC/archiveimg6.png" width="568" height="139"></p>
        <br>
        <p>So following the usage of the application, to get the list of what's inside the RAR archive, we need to call the "rar.exe" with parameters with the "v" command and then the archive name.</p>
        <p>Let's test this manually first by attempting to show the content of a file like "E:\Temp\just.rar"</p>
        <p class="figure"><img class="largeimage" title="rar.exe: getting a list of files in the terminal" alt="rar.exe: getting a list of files in the terminal" src="images/imgDC/archiveimg7.png" width="800" height="630"></p>
        <br>
        <p>So what we need now to do is to configure the "list" to tell to Double Commander how to invoke "rar.exe" to get the content of the compressed archive.</p>
        <p>To do that, we'll rewrite the same thing as what we've just did but by using the variable and variable modifier mentioned earlier.</p>
        <p>Here is what's it looks like:</p>
        <p class="figure"><img class="largeimage" title="Action: List" alt="Action: List" src="images/imgDC/archiveimg8.png" width="86" height="41"></p>
        <p>We wrote <code>%P v %AQ</code> using the variable mentioned earlier with the Variable and Variable Modifier.</p>
        <ul>
          <li><b>%P</b> will be substituted by our executable written earlier, so "E:\Program Files\WinRAR\Rar.exe".</li>
          <li><b>v</b> will remain as is and is the "v" command or the "rar.exe" external archiver to view list of files.</li>
          <li><b>%A</b> is the name of the archive, we add to it the "Q" to indicate we want Double Commander to quote the name if there is space in it.</li>
        </ul>
        <p>So all this is to invoke the external archiver with proper parameters.</p>
        <p>This will be use when we use the internal command <a href="cmds.html#cm_OpenArchive">cm_OpenArchive</a>.</p>
        <p>A few words about the "Use archive name without extension as list" option: This option is intended for archives that can contain only one file and the filename is equal to the archive name without extension (Bzip2, XZ and others). Such compressed files usually do not contain the name of the original file.</p>
        <p class="navback"><a href="#topofpage">(back to top)</a></p>
      </div>

      <div>
        <h2><a name="recuperate">4.5. Recuperating list of content</a></h2>
        <p>So far what we've done will have the archiver to output the list of the files inside the archive files.</p>
        <p>But now that's not all! We need to recuperate this outputted data and display it in our panel.</p>
        <p>So we need Double Commander to interpret that output table we've that the command of the archiver will output.</p>
        <p class="navback"><a href="#topofpage">(back to top)</a></p>
      </div>

      <div>
        <h2><a name="delimit">4.5.1. Delimiting the area to analyse</a></h2>
        <p>As we see in previous capture, the output of the "rar.exe" regarding the content is not just bare data.</p>
        <p>There are some annoying information around we need to eliminate to keep only the actual file list.</p>
        <p>Luckily, we may configure a magic string so Double Commander will wait to see that string prior to begin to parse the next following lines.</p>
        <p>Also, we may configure the magic string to stop parsing as well.</p>
        <p>Because we have dashed line before and after, it's pretty easy to set these two parameters with the dashed lines:</p>
        <p class="figure"><img class="largeimage" title="Action: Listing start/finish" alt="Action: Listing start/finish" src="images/imgDC/archiveimg9.png" width="360" height="79"></p>
        <p>In the eventuality that an external archive would immediately output bar data with no extra lines, simply let the two fields empty.</p>
        <p>The caret ("^") is a there to indicate that the magic string needs absolutely to start the line, with nothing else. Otherwise, the text can be located anywhere in the line.</p>
        <p>If it would not be possible to be sure it starts the line, like for example if the external archiver would start the line with the date and time, and then a constant string, we would set the magic string to be the constant string but we would not add the caret which instruct to Double Commander that the string to search might be anywhere.</p>
        <p>If the "Listing finish" string might be confused with a filename, it could stop processing the content of the archive too early.</p>
        <p>That's why, when possible, it's good to specify that the string must start the line.</p>
        <p>Also, if there is a way to set the "Listing finish" string as long as possible, still being constant, it's even better and safe to make sure no confusion will happen in the future.</p>
        <p class="navback"><a href="#topofpage">(back to top)</a></p>
      </div>

      <div>
        <h2><a name="parsing">4.5.2. Parsing the list of content</a></h2>
        <p>Now Double Commander knows exactly which data to parse to get the file list of the archive file.</p>
        <p>It would have been easy to hard coded in the application a routine to parse that "RAR" output to get the file list.</p>
        <p>But Double Commander does not do that.</p>
        <p>Instead, it is extremely versatile by giving us the opportunity to configure ourself the way the table will be parsed!</p>
        <p>It might be a little bit more complex than having nothing to do, but on the other hand, it gives us maximum of flexibility by being able to use external archival Double Commander developers were not even aware of!</p>
        <p>To help us to parse that output table the archiver is giving us, we will have various expression representing by letters.</p>
        <p class="navback"><a href="#topofpage">(back to top)</a></p>
      </div>

      <div>
        <h2><a name="standardparsing">4.5.3. Standard syntax for parsing</a></h2>
        <p>The following table gives us the "Standard syntax" for parsing the list of content the external archive generated us.</p>
        <p>As we will see with the next example, the "standard syntax" is based basically on more direct substitution than the "advanced syntax".</p>
        <p>When possible, we will try to use that syntax since it's parsing results faster than the "advanced syntax" which follows.</p>
        <table>
          <tr class="rowcategorytitle"><th colspan="2">Standard syntax parsing</th></tr>
          <tr class="rowsubtitle"><th class="namecolumn">Expression</th><th class="categorydesccolumn">What it stands for</th></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">n</div></td><td class="hintcell">filename</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">z</div></td><td class="hintcell">unpacked size</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">c</div></td><td class="hintcell">file description</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">p</div></td><td class="hintcell">packed size</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">d</div></td><td class="hintcell">day</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">t</div></td><td class="hintcell">month</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">TTT</div></td><td class="hintcell">three letters month name (Jan, Feb, Mar, ...)</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">y</div></td><td class="hintcell">year</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">h</div></td><td class="hintcell">hours</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">H</div></td><td class="hintcell">hours modifier letter (a&nbsp;&ndash; a.m. time, p&nbsp;&ndash; p.m. time)</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">m</div></td><td class="hintcell">minutes</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">s</div></td><td class="hintcell">seconds</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">a</div></td><td class="hintcell">attributes</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">e</div></td><td class="hintcell">file extension</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">?</div></td><td class="hintcell">skip one symbol</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">*</div></td><td class="hintcell">skip until first space or end of line</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">+</div></td><td class="hintcell">for name field at line end: use all chars until the end of the line</td></tr>
        </table>
        <p>If the archiver displays information about each file using more than one line, we must specify the corresponding number of lines to parse the contents (Double Commander supports up to 50 lines).</p>
        <p class="navback"><a href="#topofpage">(back to top)</a></p>
      </div>

      <div>
        <h2><a name="standardexample">4.5.4. Example with standard syntax</a></h2>
        <p>So the beauty of the thing here is to use the available expressions from the previous table to write the "Listing format" string that will configure Double Commander for that external archiver so it will be able to get the content of the archive concerning directory and filenames, filesize, attributes, file dates, etc.</p>
        <p>First guess for us to help to generate that line would be to write in Notepad for example a line of text for one file we've done manually previously and write below that expression from the previous table that would fit.</p>
        <p>Here is an example of that:</p>
        <p class="figure"><img class="largeimage" title="Listing format: example with standard syntax" alt="Listing format: example with standard syntax" src="images/imgDC/archiveimg10.png" width="818" height="150"></p>
        <p>So as we can see, we wrote the parsing expression letter matching to each field at the same exact position where it is located into the output of the archive content that our external archiver outputed us:</p>
        <ul>
          <li>series of "a" for where is the file attributes;</li>
          <li>series of "z" for where is the uncompressed size of files;</li>
          <li>the date and times letters for the date and time of files;</li>
          <li>series of "n", more than enough, for where is the actual filenames.</li>
        </ul>
        <p>And all we still need to do is exclude 4 spaces at the beginning of the line, replacing them with "????".</p>
        <p>So configured that way, if we select our previous "just.rar" archive into a panel, we press <kbd>Enter</kbd> to get into it like it would be a directory, we see the file content showing us what we did "basically" worked (if we ignore the last file...):</p>
        <p class="figure"><img class="largeimage" title="View archive: example with standard syntax" alt="View archive: example with standard syntax" src="images/imgDC/archiveimg11.png" width="668" height="570"></p>
        <p class="navback"><a href="#topofpage">(back to top)</a></p>
      </div>

      <div>
        <h2><a name="advancedparsing">4.5.5. Advanced syntax for parsing</a></h2>
        <p>The following table gives us the "Advanced syntax" for parsing the list of content the external archive generated us.</p>
        <p>The element of this syntax will take a little more time to process than the one from the previous table.</p>
        <p>So use them only when it's impossible to solve a problematic situation with the previous one.</p>
        <p>Example of usage of it will be in the next section.</p>
        <table>
          <tr class="rowcategorytitle"><th colspan="2">Advance syntax parsing</th></tr>
          <tr class="rowsubtitle"><th class="namecolumn">Expression</th><th class="categorydesccolumn">What it stands for</th></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">+</div></td><td class="hintcell">for name field not at line end: use all chars up to next space</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">+</div></td><td class="hintcell">after any numeric field: use all digits up to first non-digit character</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">n+</div></td><td class="hintcell">use all chars until the end of the line for filename</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">z+</div></td><td class="hintcell">use all digits up to first non-digit character for the unpacked size</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">p+</div></td><td class="hintcell">use all digits up to first non-digit character for the packed size</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">$</div></td><td class="hintcell">skip all spaces/tabstops until next character or end of line</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">\</div></td><td class="hintcell">data continues on next line (maximum 2 lines supported)</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">x</div></td><td class="hintcell">exactly 1 space; if there is a different character at this position, ignore the whole line</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">z=1024</div></td><td class="hintcell">unpacked size multiplied with given value (here: 1024)</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">p=1024</div></td><td class="hintcell">packed size multiplied with given value (here: 1024)</td></tr>
        </table>
        <p class="navback"><a href="#topofpage">(back to top)</a></p>
      </div>

      <div>
        <h2><a name="advancedexample">4.5.6. Example with advanced syntax</a></h2>
        <p>The example with the "standard syntax" was a good guess, but it is perfect.</p>
        <p>There are some cases where it won't work correctly.</p>
        <p>With huge files, the filesize is wider than expected so our first attempt of listing will fail.</p>
        <p>See our file <code>007 Skyfall.TS</code>.</p>
        <p>We can see it is not displayed with the appropriate information. Let's compare:</p>
        <p class="figure"><img class="largeimage" title="View archive: appropriate information" alt="View archive: appropriate information" src="images/imgDC/archiveimg12.png" width="756" height="122"></p>
        <p>So we see it's incorrect regarding the filename, file size, the date, etc.</p>
        <p>Let's use elements from the "advanced syntax" to solve this problematic situation.</p>
        <p>Here is what could be use to make it work even if outputed field are not *exactly* always on the same width:</p>
        <p class="figure"><img class="largeimage" title="Listing format" alt="Listing format" src="images/imgDC/archiveimg13.png" width="258" height="41"></p>
        <p>It's a little more complex, but is very easy to described and at the end we'll see it's not so complicated to generate.</p>
        <p>Here's a colored description that will help us to visualize the parsing of each little block:</p>
        <p class="figure"><img class="largeimage" title="Listing format: example with advanced syntax" alt="Listing format: example with advanced syntax" src="images/imgDC/archiveimg14.png" width="748" height="495"></p>
        <p>So using that "listing format" string, we may now do again our test and we have the correct result, even for the huge file:</p>
        <p class="figure"><img class="largeimage" title="View archive: example with advanced syntax" alt="View archive: example with advanced syntax" src="images/imgDC/archiveimg15.png" width="668" height="570"></p>
        <p class="navback"><a href="#topofpage">(back to top)</a></p>
      </div>

      <div>
        <h2><a name="actionextract">4.6. Configuring the "Extract" action</a></h2>
        <p>Using the same <a href="#variables">variables</a> and <a href="#modifiers">variable modifiers</a> mentioned earlier, this is the line to configure how to call the external archiver to "extract" a file or all files from the selected archive.</p>
        <p>Still continuing our example with "rar.exe", we know from its documentation that we use the command "x" to indicate we want to extract a file or a group of files.</p>
        <p>With "rar.exe", we may also provide in parameter a list of file to extract.</p>
        <p>So we will take advantage of the variable <code>%L</code> that Double Commander offers us which will create a text file with inside each and every file selected requested from the active to be extracted and that's this single list file that we will pass in parameter.</p>
        <p>Here is the line we'll configure in this example with "rar.exe" for the extraction:</p>
        <p class="figure"><img class="largeimage" title="Action: Extract" alt="Action: Extract" src="images/imgDC/archiveimg16.png" width="146" height="41"></p>
        <p>The description of this example is:</p>
        <ul>
          <li><b>%P</b>&nbsp;&ndash; Will be substituted by the configured external archiver executable.</li>
          <li><b>x</b>&nbsp;&ndash; The command for "rar.exe" for an extraction.</li>
          <li><b>-y</b>&nbsp;&ndash; A parameter for "rar.exe" to "Assume Yes on all queries" so it will accept to overwrite on existing file.</li>
          <li><b>%AQ</b>&nbsp;&ndash; Filename of the archive. "Q" indicates we want Double Commander to quote the name if there is space in it.</li>
          <li><b>@</b>&nbsp;&ndash; The symbol to indicate to "rar.exe" that we'll provide a list of files as what to unpack.</li>
          <li><b>%LQA</b>&nbsp;&ndash; Filename of the file list of names of files to be processed by the external archiver, the "A" requesting ANSI encoding.</li>
        </ul>
        <p>So this command will be invoke when we'll select an archive to extract the whole content, just one file, etc.</p>
        <p>We may not realize at first but when we'll "enter in" the archive like it would be a directory and we would press <kbd>F3</kbd> to view the content of a file inside the archive, this "Extract" action will took place in background. The selected file will be extracted using that pattern into the system directory for the temporary files and then that's this temporary file that we will look at with the <kbd>F3</kbd> invoken viewer.</p>
        <p>This will be use when we use the internal command <a href="cmds.html#cm_ExtractFiles">cm_ExtractFiles</a>.</p>
        <p class="navback"><a href="#topofpage">(back to top)</a></p>
      </div>

      <div>
        <h2><a name="actionadding">4.7. Configuring the "Adding" action</a></h2>
        <p>Using the same <a href="#variables">variables</a> and <a href="#modifiers">variable modifiers</a> mentioned earlier, this is the line to configure how to call the external archiver to "pack" a file or all files to the selected archive.</p>
        <p>Still continuing our example with "rar.exe", we know from its documentation that we use the command "a" to indicate we want to create an archive or to add to an existing archive a file or a group of files.</p>
        <p>With "rar.exe", we may also provide in parameter a list of file to add.</p>
        <p>So we will take advantage of the variable <code>%L</code> that Double Commander offers us which will create a text file with inside each and every file selected requested from the active panel to be added to the archive and that's this single list file that we will be passed in parameter.</p>
        <p>Here is the line we'll configure in this example with "rar.exe" for the archive creation or addition:</p>
        <p class="figure"><img class="largeimage" title="Action: Adding" alt="Action: Adding" src="images/imgDC/archiveimg17.png" width="146" height="41"></p>
        <p>The description of this example is:</p>
        <ul>
          <li><b>%P</b>&nbsp;&ndash; Will be substituted by the configured external archiver executable.</li>
          <li><b>a</b>&nbsp;&ndash; The command for "rar.exe" for an archive creation or to add to an existing one.</li>
          <li><b>-y</b>&nbsp;&ndash; A parameter for "rar.exe" to "Assume Yes on all queries" to don't be bothered.</li>
          <li><b>%AQ</b>&nbsp;&ndash; Filename of the archive. "Q" indicates we want Double Commander to quote the name if there is space in it.</li>
          <li><b>@</b>&nbsp;&ndash; The symbol to indicate to "rar.exe" that we'll provide a list of files as what to pack.</li>
          <li><b>%LQA</b>&nbsp;&ndash; Filename of the file list of names of files to be processed by the external archiver, the "A" requesting ANSI encoding.</li>
        </ul>
        <p>So this command will be invoken when we'll select a file or a group of files and request to pack them using the "RAR" external archiver.</p>
        <p>This will be use when we use the internal command <a href="cmds.html#cm_PackFiles">cm_PackFiles</a>.</p>
        <p class="navback"><a href="#topofpage">(back to top)</a></p>
      </div>

      <div>
        <h2><a name="actiondelete">4.8. Configuring the "Delete" action</a></h2>
        <p>Some types of compressed file formats support the possibility to delete a file inside the actual compressed file directly.</p>
        <p>If this feature is supported, we may configure Double Commander to indicate how to invoke the external archiver to do so.</p>
        <p>Typical situation where this command will be used is when we've entered into a archive, we've selected a file inside it and we click to delete it.</p>
        <p>If this "Delete Action" is configured, then it will be used for the action.</p>
        <p>Please note that this action is on the second tab of the external archive configuration.</p>
        <p>Still continuing our example with "rar.exe", here is how we may configure this action:</p>
        <p class="figure"><img class="largeimage" title="Action: Delete" alt="Action: Delete" src="images/imgDC/archiveimg18.png" width="148" height="41"></p>
        <p>The description of this example is:</p>
        <ul>
          <li><b>%P</b>&nbsp;&ndash; Will be substituted by the configured external archiver executable.</li>
          <li><b>d</b>&nbsp;&ndash; The command for "rar.exe" to delete an entry inside the archive.</li>
          <li><b>-y</b>&nbsp;&ndash; A parameter for "rar.exe" to "Assume Yes on all queries" to don't be bothered.</li>
          <li><b>%AQ</b>&nbsp;&ndash; Filename of the archive. "Q" indicates we want Double Commander to quote the name if there is space in it.</li>
          <li><b>@</b>&nbsp;&ndash; The symbol to indicate to "rar.exe" that we'll provide a list of files as what to erase (yes, we may erase more than one at once).</li>
          <li><b>%LQA</b>&nbsp;&ndash; Filename of the file list of names of files to be processed by the external archiver, the "A" requesting ANSI encoding.</li>
        </ul>
        <p class="navback"><a href="#topofpage">(back to top)</a></p>
      </div>

      <div>
        <h2><a name="actiontest">4.9. Configuring the "Test" action</a></h2>
        <p>Some archivers allow to validate the integrity of an archived file to make sure there is no error in them, making sure nothing is corrupted.</p>
        <p>If this feature is supported, we may configure Double Commander to indicate how to invoke the external archiver to do so.</p>
        <p>Still continuing our example with "rar.exe", here is how we may configure this action:</p>
        <p class="figure"><img class="largeimage" title="Action: Test" alt="Action: Test" src="images/imgDC/archiveimg19.png" width="98" height="41"></p>
        <p>The description of this example is:</p>
        <ul>
          <li><b>%P</b>&nbsp;&ndash; Will be substituted by the configured external archiver executable.</li>
          <li><b>t</b>&nbsp;&ndash; The command for "rar.exe" to verify an archive.</li>
          <li><b>-y</b>&nbsp;&ndash; A parameter for "rar.exe" to "Assume Yes on all queries" to don't be bothered.</li>
          <li><b>%AQ</b>&nbsp;&ndash; Filename of the archive. "Q" indicates we want Double Commander to quote the name if there is space in it.</li>
        </ul>
        <p>This will be use when we use the internal command <a href="cmds.html#cm_TestArchive">cm_TestArchive</a>.</p>
        <p>If there is no error, testing window will be closed. If there is an error, a message like the following will appear:</p>
        <p class="figure"><img class="largeimage" title="Test archive: error message" alt="Test archive: error message" src="images/imgDC/archiveimg20.png" width="514" height="184"></p>
        <p class="navback"><a href="#topofpage">(back to top)</a></p>
      </div>

      <div>
        <h2><a name="actionextractnpath">4.10. Configuring the "Extract without path" action</a></h2>
        <p>By default when invoking the internal command <a href="cmds.html#cm_ExtractFiles">cm_ExtractFiles</a> to unpack an archive, if the files inside it are arranged with a certain directory structure, then archiver will recreate the same structure while extracting the files.</p>
        <p>But, when supported by the archiver, it's sometimes pertinent to extract all the files in the same location without re-creating the directory structure.</p>
        <p>So this is where the action "Extract without path" is used when configured.</p>
        <p>For example with "rar.exe", the command like to do that will be written this way:</p>
        <p class="figure"><img class="largeimage" title="Action: Extract without path" alt="Action: Extract without path" src="images/imgDC/archiveimg24.png" width="218" height="41"></p>
        <p>The description of this example is:</p>
        <ul>
          <li><b>%P</b>&nbsp;&ndash; Will be substituted by the configured external archiver executable.</li>
          <li><b>e</b>&nbsp;&ndash; The command for "rar.exe" to extract from an archive but not re-creating the directory structure.</li>
          <li><b>-y</b>&nbsp;&ndash; A parameter for "rar.exe" to "Assume Yes on all queries" to don't be bothered.</li>
          <li><b>%AQ</b>&nbsp;&ndash; Filename of the archive. "Q" indicates we want Double Commander to quote the name if there is space in it.</li>
          <li><b>@</b>&nbsp;&ndash; The symbol to indicate to "rar.exe" that we'll provide a list of files as what to extract from archive.</li>
          <li><b>%LQA</b>&nbsp;&ndash; Filename of the file list of names of files to be processed by the external archiver, the "A" requesting ANSI encoding.</li>
        </ul>
        <p>The effect of this will be visible in the requester when we request to unpack an archive:</p>
        <p class="figure"><img class="largeimage" title="Unpack path names if stored with files" alt="Unpack path names if stored with files" src="images/imgDC/archiveimg23.png" width="464" height="266"></p>
        <p class="navback"><a href="#topofpage">(back to top)</a></p>
      </div>

      <div>
        <h2><a name="actionselfextract">4.11. Configuring the "Create self extracting archive" action</a></h2>
        <p>Some archiver can create a "self-extractable" compressed file.</p>
        <p>This means that at the end of the process, what we will get is an executable that when it is executed, it will extract the content of what was packed.</p>
        <p>This is useful when we want to be sure the persons who will need the content of the compressed file won't have problem to uncompress it: nothing needs to be installed, just execute the file and we'll get the uncompressed ones!</p>
        <p>Typically, this action will often be configured similarly as the "Adding action" and we just add a parameter indicating we want a self-extractable result.</p>
        <p>That's the case for example with our example with "rar.exe". Here is how we may configure this action:</p>
        <p class="figure"><img class="largeimage" title="Action: Create self extracting archive" alt="Action: Create self extracting archive" src="images/imgDC/archiveimg21.png" width="248" height="41"></p>
        <p>The description of this example is:</p>
        <ul>
          <li><b>%P</b>&nbsp;&ndash; Will be substituted by the configured external archiver executable.</li>
          <li><b>a</b>&nbsp;&ndash; The command for "rar.exe" for an archive creation or to add to an existing one.</li>
          <li><b>-y</b>&nbsp;&ndash; A parameter for "rar.exe" to "Assume Yes on all queries" to don't be bothered.</li>
          <li><b>-sfx</b>&nbsp;&ndash; A parameter for "rar.exe" to specify we want the end result to be a self extractable file.</li>
          <li><b>%AQ</b>&nbsp;&ndash; Filename of the archive. "Q" indicates we want Double Commander to quote the name if there is space in it.</li>
          <li><b>@</b>&nbsp;&ndash; The symbol to indicate to "rar.exe" that we'll provide a list of files as what to pack.</li>
          <li><b>%LQA</b>&nbsp;&ndash; Filename of the file list of names of files to be processed by the external archiver, the "A" requesting ANSI encoding.</li>
        </ul>
        <p>To create a self-extracted, please note that the procedure is the same as usual as when creating the compressed file, like using internal command <a href="cmds.html#cm_PackFiles">cm_PackFiles</a>, but in the requester that appear, we'll check the option "Create self extracting archive".</p>
        <p class="figure"><img class="largeimage" title="Create self extracting archive" alt="Create self extracting archive" src="images/imgDC/archiveimg22.png" width="540" height="297"></p>
        <p class="navback"><a href="#topofpage">(back to top)</a></p>
      </div>

      <div>
        <h2><a name="configids">4.12. Configuring the "ID's"</a></h2>
        <p>We may configure Double Commander in such way that it will ignore file extension of a file and attempt to detect a compressed file archive by it's internal content and then invoke the appropriate list and unpack commands described above.</p>
        <p>This is where we will use the internal command <a href="cmds.html#cm_OpenArchive">cm_OpenArchive</a>.</p>
        <p>Example of the usage of this is when we want to see the actual content of a self-extracted .exe file without having to launch it.</p>
        <p>Another example would be to see the content of archive that is saved with a different file extension than the regular archive like the .docx file of Microsoft Word which in fact actually a compressed ZIP file.</p>
        <p>Basically we may configure Double Commander to detect the presence of strategic pattern of data at specific location into selected file so it will recognize the configured archived.</p>
        <p>We will call "ID's" these patterns and this section is about configuration of them.</p>
        <p>We have three settings for that: ID, ID Position and ID Seek Range.</p>
        <p>We will instruct Double Commander where to search for specific ID's pattern to recognize an a type of archive and then use the configured commands specific to the recognized type of archive.</p>
        <p>Let's begin by a simple example. Here follows a snapshot of the beginning of a 7-Zip archive:</p>
        <p class="figure"><img class="largeimage" title="Sample 7-Zip file" alt="Sample 7-Zip file" src="images/imgDC/archiveimg25.png" width="608" height="122"></p>
        <p>By looking at other 7-Zip files, we see that the first six bytes are always the sequence 0x37 0x7A 0xBC 0xAF 0x27 0x1C.</p>
        <p>So we will take profit of that by configuring Double Commander that when it sees a file starting with that sequence to assume that the file is an 7-Zip archive.</p>
        <p>That's what we do with the following configuration:</p>
        <p class="figure"><img class="largeimage" title="7-Zip ID" alt="7-Zip ID" src="images/imgDC/archiveimg26.png" width="130" height="121"></p>
        <p>We must write ID as a 2-digit hex numbers delimited with spaces.</p>
        <p>ID Position (optional) is a position of ID in archive. If not present, ID will be searched in the beginning of archive. We can define the positions with "-" sign: in this case the positions will be calculated from the end of file. Special value &lt;SeekID&gt; determinated search ID if not found by numeric values of ID Position. Seek in range "0 .. size of file" or "0 .. ID Seek Range". Values can be writed as decimal (12345) or hexadecimal (0x3039). For negative values use notation 0xFFFFFFFF (-1).</p>
        <p>ID Seek Range (optional) is a count of bytes where ID seek if defined &lt;SeekID&gt;. By default it's 1 MB.</p>
        <p><b>Note:</b> All above parameters can be defined with multiple values. We can use comma to separate those multiple values.</p>
        <p>In our example with 7-Zip archive, ID and ID Position (0, because in the beginning of file) will be enough.</p>
        <p>So when we invoke internal command <a href="cmds.html#cm_OpenArchive">cm_OpenArchive</a>, Double Commander will scan content of the file and it recognize the "0x37 0x7A 0xBC 0xAF 0x27 0x1C" pattern at offset 0 in the file, it will process it as it is our configured 7Z type of file and then use the associated configured commands and parameters for listing, extract, etc.</p>
        <p>In most cases, there is no need to examine files in hexadecimal representation: the file signature can be found in the format specification or use existing lists, databases or utilities (for example, <a href="https://en.wikipedia.org/wiki/List_of_file_signatures" target="_blank">this Wikipedia page</a> or <a href="https://freedesktop.org/wiki/Software/shared-mime-info/" target="_blank">FreeDesktop.org MIME database</a>).</p>
        <p class="navback"><a href="#topofpage">(back to top)</a></p>
      </div>

      <div>
        <h2><a name="debug">4.13. Debugging</a></h2>
        <p>The steps described above are usually sufficient to use an external archiver, but just in case we have a couple more options:</p>
        <ul>
          <li><p><span class="italic">Show console output</span>&nbsp;&ndash; If enabled, Double Commander will write (line by line) the result of the work of the external archiver and parser to the log window.</p></li>
          <li><p><span class="italic">Debug mode</span>&nbsp;&ndash; Similar to the previous option, but the result of the work will also be output to the Double Commander's debugging messages (see the description of <a href="commandline.html">--debug-log</a>). In this case, the temporary file with the list of files (<code>%L</code> in our example) will not be automatically deleted after the operation is completed.</p></li>
        </ul>
        <p>If the display of the log window is disabled in the <a href="configuration.html#ConfigLayout">settings</a>, it will be shown forcibly and hidden when Double Commander is closed. Messages will not be saved to the log file.</p>
        <p class="navback"><a href="#topofpage">(back to top)</a></p>
      </div>

      <div>
        <h2><a name="other">4.14. Menu of the "Other" button</a></h2>
        <p>This menu contains several additional functions:</p>
        <ul>
          <li><p><span class="italic">Auto Configure</span>&nbsp;&ndash; Double Commander will check all executable files of archivers: if a file is found, the program will automatically add its full path and enable the archiver, otherwise the archiver will be disabled.</p></li>
          <li><p><span class="italic">Discard modifications</span>&nbsp;&ndash; resets all unsaved settings changes.</p></li>
          <li><p><span class="italic">Sort archivers</span>&nbsp;&ndash; sorts the list of archivers alphabetically.</p></li>
          <li><p><span class="italic">Disable all</span> and <span class="italic">Enable all</span>&nbsp;&ndash; enable or disable all archivers.</p></li>
          <li><p><span class="italic">Export...</span> and <span class="italic">Import...</span>&nbsp;&ndash; allow us to export and import archiver settings (all archivers or part of them).</p></li>
        </ul>
        <p class="navback"><a href="#topofpage">(back to top)</a></p>
      </div>

      <div>
        <h2><a name="openassociation">5. Opening an archive file in an associated application</a></h2>
        <p>By default, files whose extensions are specified in the settings of WCX plugins and external archivers are opened as folders. To open them in an associated application, we can use the "Open" item in the <a href="help.html#cm_ContextMenu">context menu</a> of the file (but in this case only system file associations will be used) or we can add the desired action to the "Actions" menu.</p>
        <p>To use the <kbd>Enter</kbd> key or double-click, we have to change the settings.</p>
        <p>We can just remove the extension from the settings, but in this case the commands <a href="cmds.html#cm_OpenArchive">cm_OpenArchive</a> and <a href="cmds.html#cm_ExtractFiles">cm_ExtractFiles</a> will become unavailable. Another way:</p>
        <ul>
          <li><p>If a WCX plugin is used, then we can open the plugin settings, select the extension and enable the "Show as normal files (hide packer icon)" flag.</p></li>
          <li><p>If an external archiver is used to unpack files, then we can fill in the fields for using ID and not specify the file extension.</p></li>
        </ul>
        <p>For such files, Double Commander will use the associated icon instead of the generic archive icon.</p>
        <p class="navback"><a href="#topofpage">(back to top)</a></p>
        <br>
      </div>
    </div>
    <div class="footer"><div class="nav"><a title="Index" href="index.html">Index</a> | <a title="Previous page" href="directoryhotlist.html">Previous</a> | <a title="Next page" href="toolbar.html">Next</a></div></div>
    <div class="checker">
      <a href="https://validator.w3.org/check?uri=referer" target="_blank"><img src="https://www.w3.org/Icons/valid-html40" alt="Valid HTML 4.0 Transitional" height="31" width="88"></a>
      <a href="https://jigsaw.w3.org/css-validator/check/referer" target="_blank"><img style="border:0;width:88px;height:31px" src="https://jigsaw.w3.org/css-validator/images/vcss" alt="CSS Valid!"></a>
    </div>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
  </body>
</html>