Folder Compare plugin¶
Compare two folders recursively and see, at a glance, what differs between them — which files are only on one side, which are identical, and which have changed. Drill into any changed file to open it in the two-pane compare view, and copy a selected file or sub-folder across after an explicit confirmation. This is the comparison half of a tool like WinMerge or Beyond Compare; it deliberately does not synchronise, mirror, or delete files.
Where to find it¶
Compare ▸ Compare Folders… — opens (or focuses) the Folder Compare panel and prompts you to pick the two folders.
The results panel¶
After you choose a left and a right folder, the panel fills with a tree that mirrors the folder structure. Each row is a file or sub-folder, with these columns:
| Column | Meaning |
|---|---|
| Name | File or folder name. Sub-folders expand to show their contents. |
| Status | Comparison result, colour-coded (see below). |
| Left Size / Right Size | File size on each side (blank for a side that has no copy). |
| Left Modified / Right Modified | Last-modified date/time on each side. |
A folder's status rolls up from its contents, and it carries a count summary (how many files differ, are left-only, right-only, and so on).
What the statuses mean¶
| Status | Meaning |
|---|---|
| Identical | Present on both sides with equal content. |
| Different | Present on both sides but the content differs. |
| Left only | Exists only under the left folder. |
| Right only | Exists only under the right folder. |
| Not compared | Present on both sides, content not yet compared. |
The toolbar¶
| Control | What it does |
|---|---|
| Choose Folders… | Pick a new left and right folder to compare. |
| Refresh | Re-scan the same two folders (pick up changes made on disk). |
| Export Report… | Save the list of differences to an HTML or text file. |
| ↑ Previous / ↓ Next | Jump to the previous/next differing file in the tree (wraps around). |
| Ignore whitespace | Treat files that differ only in whitespace as identical. |
| Ignore case | Treat files that differ only in letter case as identical. |
| Show only differences | Hide identical files and wholly-identical sub-folders. |
Toggling an ignore option re-scans
Ignore whitespace and Ignore case change which files count as identical, so turning either on or off re-runs the comparison over the same folders.
Opening a file pair¶
Double-click a file that exists on both sides to open it in the two-pane compare view. The view opens honouring the same Ignore whitespace / Ignore case options you set in the panel.
Right-click actions¶
Right-click in the results tree for these actions:
- Copy to Right / Copy to Left — copy the clicked file or whole sub-folder onto the other side (see below).
- Compare this subfolder — on a sub-folder that exists on both sides, re-roots the comparison at that folder pair (a fresh scan with the same options), so you can focus on one branch.
- Compare Selected Files — select exactly two files (Ctrl-click a second row) and compare them directly, even when they live in different places or have different names. Useful for checking a renamed file against its original.
Copying files across¶
Copy to Right / Copy to Left is the plugin's only operation that writes to disk, and it never runs without your confirmation:
- The direction is offered whenever the clicked entry exists on the source side — including Identical pairs, so you can force a content/timestamp sync of a single file.
- Copying a sub-folder copies every file under its source side (files that exist only on the destination side are left untouched — this is a copy, not a mirror). Missing destination folders are created.
- One confirmation dialog per action shows the file count, total size, the destination folder, how many existing files would be overwritten, and how many destination files are read-only. Nothing is written if you cancel.
- Read-only destination files are skipped by default (and counted in the result). Tick Overwrite read-only files in the dialog to replace them — only then is the read-only attribute cleared.
- The copy runs in the background; the status bar reports the result ("Copied 12 file(s) (2 skipped read-only)."). If something fails, the failed paths are listed and the operation stops at the first hard error.
- After a copy the panel automatically re-scans the same folders, so statuses and counts reflect the new on-disk state.
How comparison works¶
The plugin never deep-compares the whole tree up front — it pairs the structure first, then decides each file's status on demand:
- Text files are compared by content. With no ignore option active, an exact byte match is Identical and anything else is Different; with an ignore option on, the file is run through the same diff engine the compare view uses.
- Binary files are compared for equality only (size, then content): they show Identical or Different. Double-clicking a binary pair shows a short message with both file sizes instead of opening the text view — there is no hex/byte diff yet, and a line diff over raw bytes would be meaningless.
- Folder structure is read eagerly (so the tree and roll-up counts are complete), but file content is only read when a file's status is needed.
Symlink/junction loops and very deep trees are guarded against, and unreadable paths are skipped rather than crashing the scan.
Exporting a report¶
Export Report… writes the current differences — a summary line plus the per-file status list — to either an HTML file (a simple table) or a plain text file. Identical files are omitted; the report lists what differs.
What it does not do¶
By design, Folder Compare stays a comparison tool, not a file manager:
- No synchronisation — the only write operation is the explicitly-confirmed Copy to Right / Copy to Left above. It never moves, mirrors, or deletes files, and there is no bulk "make both sides equal".
- No binary/hex diff — binary files report only Identical / Different.
- No image, archive, or remote (FTP/cloud) comparison.
Picking up external changes
The panel does not yet auto-refresh when files change on disk. After editing files outside the editor, click Refresh to re-scan.