xplorer² Quick Start Guide
File exploring reinvented: Feel like home miles away from home

Examine and maintain your filesystem

Daily heavy-duty work on a PC will invariably result in a system that is suboptimal at best and unstable at worst. xplorer² has a number of advanced commands that help you restore order and reclaim wasted hard disk space.

Comparing & synchronizing folders single folder synchronization

Many times you have two or more folders that have the same contents and you want to keep them synchronized, i.e. make sure all "versions" stay updated whenever you make changes to one of them. One way to achieve this would be to use folder junctions or hard links but this isn't always convenient. One of the folders may be on a floppy disk or on a remote computer, a zip file, FTP site, etc, where these advanced linking techniques won't help you.

That's when xplorer² and its dual pane layout comes in handy. It is ideal for comparing the contents of any two folders, and finding items that are missing from either one, or have been changed in any way. Once you identify the differences, you can decide how to deal with them.

The dialog in figure 9 (Mark | Sync wizard command) indicates that comparison has two facets; first you determine how you want to compare items and then which items to mark. The large number of combinations allows you to do all sorts of checks to suit your synchronization needs.

Figure 9. Folder comparison dialog

The comparison logic first tries to match items left and right using the filename as a guide. If a file in one folder doesn't have a matching namesake in the other folder, it is immediately considered unique (cf. the checkboxes in figure 9). If a file exists in both folders, the two copies are compared for differences, using the mechanism you specify:

NOTE: When comparisons are based on date modified (or any other date) two items are considered different if their dates are more than +/- 2 seconds apart. You can use the Ignore tickbox at the bottom of the synchronization dialog to specify a different interval to ignore. E.g. if a change in daylight savings DST resulted in artificial 1-hour differences, you can set it to ignore this 1 hour — files differing by up to 1 hour will be considered identical as long as their size matches.

The relationship between files is fixed by their properties and the comparison scheme you select. The second phase is to decide which files you want to mark, ear-tag them for further processing. There are checkboxes for all item states and you can check as many of them as you wish - although not all combinations make sense, e.g. selecting both "older" and "newer" files. The drop-down menu lists some common scenarios for your convenience.

A typical scenario is to select unique and newer files. By copying them to the "passive" folder you ensure that the files in both folders are the same, both in number and most recent content. Note that there may be unique and newer items in both folders - obviously not the same items - that need to be carried across. Let's take a look at an example.

Figure 10. Results of a sample folder comparison

The figure shows the results of a <F9> command on two folders. On the left there are 3 unique files that don't exist on the right (todo, x2help.css, x2tips.rtf), a file that is newer (x2tips.rtf, please check the modification dates left & right) and a file that is the same in both folders (x2help.htm). All the marked files must be copied to the inactive pane to establish "synchronization" of contents. But also note that there is a unique file marked in the right pane (New File) that also needs to be copied to the left folder.

Also notice that on the right pane there is an extra folder called ed3 but this wasn't marked by the <F9> command. By default folders are excluded from comparisons, unless you check Consider folders, too (see figure 9).

Sometimes you may need to synchronize folders including their subfolders, as in the situation depicted in figure 11. If the hierarchy is shallow (few folders) you can turn on mirror browsing (Go to menu) and let xplorer² keep the inactive pane in the right folder, as you browse folders in the active pane. As an example, starting from folders A:\ and c:\documents\kenny in the active and inactive panes respectively, if you browse into A:\help the inactive pane will automatically follow to read c:\documents\kenny\help. This mirroring will continue in both down and up direction, as long as folders with matching names exist.

Figure 11. Synchronizing folder hierarchies
[PRO]: Deep synchronization compare folder hierarchies

When many subfolders are involved, mirror browsing is cumbersome. You can take advantage of flat folder views and use a dual scrap frame (use View | Dual pane) to browse all the files involved in the two hierarchies. If there is a good match between subfolders as in figure 11, the same <F9> command will reveal all the changes that need to be made but now acting on all subfolders simultaneously.

The easiest way to compare two folder hierarchies is to browse the required root folders in a normal dual-pane window and pick Tools | Compare subfolders. This command will open a dual scrap window, flattening each hierarchy in a separate pane and will also launch the synchronization command. If grouping is supported, items will be grouped by folder helping you to inspect the comparison results.

Once files are marked, use the special Edit | Sync-o-paste command available in scrap containers to copy all the files in their matching folders. So items selected in A:\ will end up in c:\documents\kenny, those in A:\help will end up in c:\documents\kenny\help and so on. Note that Sync-o-paste acts on the selected items and doesn't require a prior Edit | Copy command.

NOTE: Scrap containers may host items from arbitrary locations. The deep synchronization logic tries to match folders first, and then applies the usual content comparison procedure for each folder pair. Sometimes it won't be possible to match all folders left & right, when the hierarchies are completely different. In such cases there will be a lot of items left in an undetermined state, and a little red question mark will appear overlaid on their icon.
If you want to compare items that don't belong to similar folder structures, you can try checking Loose name matching option (figure 9); this will compare items matching just names - ignoring folders - but you won't be able to use the sync-o-paste command on the results. Multiple same-name items are matched in the order they are listed in each pane.

If you find this form of deep synchronization a bit of a headache you can try an alternative that is based on robust copy <F5> command. Selecting Overwrite if newer else skip transfer option will result in copying only files that are new or changed, just as if you did a synchronization based on modification dates - and it doesn't need scrap containers or any prior synchronization commands! This will work best if you have all the changes in one folder hierarchy and you want to mirror them to some other "backup" location.

Checking file transformations

The folder synchronization command just described checks for modifications of different versions of the same file. A variation on this theme is checking the state of file transformations, when the compared filenames are slightly different.

If you are involved in programming, then you will recognise this situation as compilation of source code to object files. So starting from a C++ file xplorer2.cpp the compiler churns out the machine translation in a new file called xplorer2.o - notice the change of extension from .cpp to .o. Mark | Check build command checks the states of source files comparing them to their "transformed" versions.

Figure 12. "Make" check dialog

The dialog shown in the above figure accepts as input the transformation rule, which observes the source and target filename extensions. It can be seen that multiple comma-separated extensions can be used to check for all compilation projects in one stroke. Also note that a generic wildcard is accepted for the From field whereas the To field must be just the target extension(s), without the "." (e.g. type o instead of .o).

Once source and target files are matched their modification dates are examined to figure out which is newer. If the source is newer, it must have been modified since last build (cf. figure 12 checkboxes) and it requires re-compilation. If the target is newer then it is up to date, whereas if it doesn't exist at all the source is not built. You can check as many boxes as you want to tell xplorer² which source files to select. Let's take an example.

Figure 13. Sample project check

Using the options in figure 12 on a pair of hypothetical source and target folders, xplorer² marks all source files that require compilation. The file application.cpp was modified after it was last built (check the date of its target application.obj) so it is marked. browserView.cpp hasn't been compiled at all (no browserView.obj exists in the inactive pane), so it is "not built" and hence marked. addressBar.cpp on the other hand is up to date, and finally Alpha.txt is completely irrelevant for this transformation rule so it is left unselected.

Like the folder synchronization command, Mark | Check build merely ear-marks files that require building without actually taking any further action. It is up to the user to decide what to do with the selection afterwards, e.g. generate a script file that executes the compiler for each source file.

NOTE: This command doesn't make claims of being a substitute for make type tools. For instance it cannot check for cross-dependencies from modified header files etc. Still it can be useful for simpler scenarios like MatLab projects.

[PRO] Visualize disk space usage

According to the second law of computers, no matter how big your hard disk, eventually it will fill up with movies, videos, pictures and what have you. While browsing a folder with subfolders, Tools | Subfolder size command will show you the size of each individual subfolder, so you can tell which one takes most space.

For more details use Tools | Folder statistics menu command. It will calculate details for each subfolder like number of files and size used, and will do so recursively for all the contained folders, and present the results as a tree:

Figure 13a. Folder data window

The largest folders appear first. To aid visualization of space usage, a little pie chart is shown too, popping out a pizza slice for each folder you select in the tree. Drag the splitter bar with the mouse to make the pie bigger or smaller. You can also use the tooltips over the pie pieces to discover the folder names.

The second main tree branch shows the biggest files in the hierarchy examined, arranged by size. Examine the big files branch to see whether you don't need some of them and you can delete them to save space. Select a file and press <ENTER> key to browse its containing folder.

The single menu bar item called Actions holds a few commands, the most useful of which perhaps is Copy, which copies the entire selected tree branch as text, that can be subsequently pasted in a text editor for printing or whatnot. Another useful menu command is Empty folders which detects folders that are empty (they have no file contents), and puts them in a scrap container for further action (e.g. select all of them and delete them)

Once you discover the biggest size offenders, clean up your space deleting junk files, e.g. duplicates, similar pictures etc.

[PRO] Detecting duplicate files clean up your hard disk

What if you have a ton of MP3s collected and you are not sure how many times you have Christina Aguillera's "Dirty" (this must be a video then :) , or John Abercrombie's "Back wood song", eating up your hard disk space? Enter the duplicate finder.

Duplicates come in many guises. In the simplest case a file will exist in many carbon copies using the same name. A little bit trickier is when a file exists with many different names but the same data content. Tools | Check duplicates command (in scrap windows) will help you detect all these kinds of extra files.

The procedure is as follows. First you open a Window | Scrap container; then fill it in with all the suspected duplicate items; finally launch the duplicate checker command from Tools menu to examine the contents. Note that the command only considers the items in the scrap container, so you have the flexibility to hand pick selected suspect folders. Alternatively you can flatten your whole "My Computer" folder that includes all your hard disks and do a thorough - albeit time consuming - investigation. Most of the times it would suffice to flatten "My Documents" folder.

Another way, handy if you want to examine the folder currently browsed, is Tools | Check duplicates menu command, that will automatically flatten the current folder (and optionally the one you browse in the inactive pane) and launch the duplicate checker parameters dialog below. If you go this route, you also get to exclude small files from the comparison, that don't take up much space. See nMinDupeSize registry tweak for more information.

Figure 14. Duplicates' detection parameters dialog

The options set in the dialog determine how the investigation is to proceed. You can have any combination of boxes checked (use clear button to reset all checkboxes before a fresh search) but the fastest would be to assume that duplicates will have the same name, modification date and size. (Sometimes detecting duplicates is as simple as sorting the scrap contents by size or by checksum and visually inspecting for items that have the same size or checksum.)

If you are comparing modification dates, there could be phantom differences introduced e.g. by FAT32 partitions, that are only 2-second accurate for stored files. For such cases use Ignore XXX seconds box in the dialog. You get to choose how many seconds (or hours!) to ignore when comparing modification dates. Any 2 files that fall within the date tolerance limit are considered to have the same date.

Custom file properties can also be used as criteria for "sameness". Select the property you want using the drop-down box and you can extend the duplicates tester in creative ways (e.g. find all music files by the same artist or owner)

If you suspect you have identical files with different names or/and timestamps, then you can clear all boxes except for content. This is the most robust detection mechanism but at the same time very time consuming, since each file is compared to each and every other file in the container, regardless of their name.

TIP: Ultimate xplorer² edition has among other things a much quicker duplicates detection algorithm, that allows you to search your entire hard disk for duplicates and get results in reasonable time.
There's also a new zabkat tool purpose built for finding duplicate and similar files, called i-DeClone, which is even more capable than xplorer²

After the command finishes its work, all files that match the user criteria are bunched together in groups with different background color as in figure 15. All unique items are hidden. The example situation started with 8 files (shown in the inactive pane). Three pairs of duplicates were detected and the unique items like kenny.dsw were removed from view.

Figure 15. Sample duplicate files (in dual pane for clarity)

If you intend to delete duplicate files, please make sure you check Select all duplicates box in the dialog (figure 14) before you go ahead with the command.

TIP: This command can't tell which is the "original" out of the identical files, but it uses the initial order of the items, leaving the first one unselected and marking all the others. If you want to keep the older copy then make sure you sort by Modification date - from older to newer - before starting the duplicates checker.

Such listings provide preliminary evidence of duplicate files. Depending on your dialog parameters you may need further proof before actually deleting the redundant copies. A good guide is the checksum column that you can activate using View | Select columns. It shows a numeric "summary" of a file's contents. When checksums are different files are 100% different; equal checksums on the other hand do not guarantee identity - although they imply a strong possibility that the files are identical.

Once you are confident about extra files being duplicates, you can delete them using File | Delete - or pressing <Ctrl+Delete>.

Technically speaking, when duplicate files are shown, the pane is both filtered since unique files are hidden from view (notice the filter icon on the statusbar of figure 15), and unsorted since files are displayed in groups regardless of the original sort order. You can cancel this mode using Tools | Reveal unique or View | Show all.

[PRO] Discover similar and bad quality photos picture cleanup demo

Another source of clutter in your hard disk is your photo collection. It is very easy to snap lots of photos with your mobile phone or camera, but not all of them are worth keeping:

xplorer² has commands that let you quickly discover bad and similar pictures, offering you the option to delete them and clean up your disk space. First you can choose the Blur file detail (use <ALT+K> keys to choose columns in detailed view mode). For JPG pictures it shows a number, which is big for pictures that are suspect; values greater than 100 indicate bad quality, whereas smaller values indicate smaller defects. Sort your picture collection by this column to bunch the bad pictures together, then inspect and delete what is not worth keeping.

To get rid of similar pictures, flatten a picture folder or use any other means to fill up a scrap container window with JPG photos to examine. Use Tools | Find similar photos menu command (or if using the Ribbon UI see under Duplicates button on the Home tab) to group them by similarity. Whereas checking for duplicates will only find files (pictures) that are exactly identical, this command finds pictures that are slightly changed.

find similar pictures
Figure 15c. Find similar pictures dialog

The dialog controls how similar pictures are found. To achieve reasonable detection speeds, it examines pictures either by filename or by modification dates, so that it only considers pictures that are likely to resemble each other (shot one after the other). Alternatively you can choose As they appear in pane radio button if you want to be in charge of the order photos are examined (e.g. in whatever sort order is in effect). You can tweak the similarity threshold up or down, to match pictures that are more closely (or loosely) related.

Any similar photos found will be placed in groups, as per the duplicate checker function (i.e. in bands organized by Group ID column) and thumbnail view mode will be automatically enabled to let you compare the similarities discovered. Then just select and delete those you don't need, leaving 1-2 best pictures per group.

NOTE: Both blur detection and photo similarity are probabilistic methods based on artificial intelligence algorithms (SVMs). As such they are not perfect and should be taken with a pinch of salt. But even if you only find some of your bad pictures automatically, it is still a significant help compared to manually going over your photos one by one!

[PRO] Fuzzy grouping

Fuzzy grouping is an interesting (albeit oddball) feature that could be put in various uses. It uses fuzzy matching to group together items that are similar but not identical. For example, we can put all our music album folders in a scrap container, then use Tools | Fuzzy groups menu command to group the folders by similarity. Just watch the groups in the following picture:

Figure 15a. Group similar filenames with fuzzy grouping

As you can see, using a 40% fuzzy factor, the first group contains all folders that contain "Abercrombie" in the title, the third group has works by Keith Jarrett and so on. The command picks up the groups automatically. If you make the factor bigger (say 60), the fuzziness decreases, so items have to be more alike to be grouped together. For best results try a few different values until you hit on the desired groupings.

Fuzzy grouping is a special case of custom grouping.

If you use a regular expression (instead of a number) as the fuzzy factor, you can identify common substrings in filenames or other properties, and group on them. Let's use an example, consider these files:

alpha (2002).mp4
beta (2002) action.mp4
New File 2123
old (2001).mov
alien (2001).mp3

Four of these have a year, or 4 digit number, in brackets. If we use the regular expression \(\d{4}\) that matches this pattern for a fuzzy factor, we will generate these automatic groups:

Figure 15b. Group filenames with common parts using regular expression

See how the file that doesn't have a year in brackets ends up in the unspecified (non-matching) group.

Here's another use of this command. If you browse shell:recent folder of recently accessed documents, you cannot arrange by file type because all files in there are shortcuts; the .LNK extension is masking out the real file type. You can work around this problem putting all items in a scrap window and do a fuzzy group on NAME [S] property (not full name) and this regular expression:


You will see that files are grouped by their original extension!

[PRO] Convert groups to folders
Regular (sort column) or custom groups (even fuzzy grouping) in scrap container collections can be converted into actual folders using Tools | Extract groups menu command.

Figure 15d. Convert groups to folders dialog

Say you used View | Arrange by | Show in groups menu to show items alphabetically grouped using their first letter, you can then use extract groups command to create folders that contain the items of each group. You choose a top destination folder and xplorer² creates subfolders under it, one per group (the folder names match the group titles you see). You can either copy or move the original files into these subfolders, depending on the checked state of Leave a copy... box.

Unlike other xplorer² commands, all the visible items are sent to group subfolders, not only those selected. A few other irregularities to note with this command:

This command can also organize items by date, whether you have groups or not. This is useful e.g. if you have a truckload of photos in a scrap and you want to automatically move them in subfolders according to their modification date. Use the two date radio buttons to choose how to have them organized, either one folder per year, or you can have items organized by year and month (i.e. each year subfolder has 12 subfolders corresponding to months). Usually last modified date is used for automatic folder creation, but you can pick any other date you want (e.g. picture date) by placing it before the date modified in the details. To reorganize column order either use ALT+K command or drag-drop using the column header

You can apply additional order to your photos using the export groups command in stages. For example, if you want to organize your photos by camera model as well as by date, so that you have one folder per camera model, and inside that you organize by year/month, you can do it as such:

  1. Put all your photos in a scrap container e.g using search or browse flat menu command
  2. Add the file detail you want to organize by, e.g. camera model
  3. Sort by this column (click on its header) and turn on groups (View | Arrange by | Show in groups menu)
  4. Convert the current grouping into folders. Now you have one subfolder per camera model.
  5. Enter each of these subfolders and reuse Export groups command, now using date information to create the sub-sub-folders. For this last step make sure you move items (untick "leave a copy..." box), so that your photos are only stored once.

This procedure could be automated using macros

Scrap containers Contents Searching

Download xplorer2

© 2002-2023 ZABKAT, All Rights Reserved