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] 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.


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 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.)

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.

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] 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 groupped 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!




Scrap containers Contents Searching

Download xplorer2



© 2002-2017 ZABKAT, All Rights Reserved
http://zabkat.com