# Compare two folders and sync them

> Compare the two panels by size and date or by content hash, see every difference with a direction you can override, and apply through the queue with undo.

- Canonical: https://cwdio.com/features/compare-and-sync/
- Updated: 2026-08-15
- Product: Cwdio File Manager (cwdio) — https://cwdio.com

Put the two folders in the two panels, press <kbd>Ctrl+Shift+S</kbd>, and cwdio shows what differs — every
file, which side is newer, what would be copied and what would be deleted — before it touches anything.
Choose the direction, tick or untick rows, override any single one, and Apply turns the plan into
ordinary queue operations you can watch, cancel and undo.

## What it does

- **A dry run first.** The compare walks both trees in lock step, host-side, and returns a plan: rows with
  per-side size and date, an include checkbox each, and a decision. Nothing moves until Apply.
- **Five modes.** Update → / Update ← (copy new and newer one way, never delete), Mirror → / Mirror ←
  (exact replica; target-only entries deleted to the Recycle Bin), Two-way. Decided per row, with the
  ambiguous ones left unchecked.
- **Per-row override.** Click a row's direction to cycle it — copy this way, copy that way, delete, skip —
  and it wins over the mode. Picking a direction re-includes the row.
- **Compare contents.** Optional: same-size pairs are hashed on both sides, with a live *Comparing… N files
  hashed* line.
- **Exclude mask.** `*.tmp;node_modules;.git` drops matching rows — matched on any path segment — with an
  *N excluded* count.
- **Applied through the queue.** Copies run with overwrite and honour *Verify copies*; deletes go to the
  trash; the Operations drawer opens so the sync is cancellable, pauses if a drive vanishes, tolerates a
  failed file, and is journaled like any transfer.
- **Remembered settings.** Mode, compare-contents and the exclude mask persist between runs.
- **Compare files.** <kbd>Ctrl+Shift+D</kbd> — a virtualised side-by-side diff with word-level highlighting and
  `n` / `p` to step through changes.
- **Mark differences.** Tools ▸ Mark differences selects, in each panel, the names the other panel lacks —
  the quick set-difference when you do not need a plan.

## How to use it

1. Left panel: the source (your working folder). Right panel: the target (the backup drive, the copy on
   the NAS).
2. <kbd>Ctrl+Shift+S</kbd>. Read the summary line — how many to copy each way, how many to delete.
3. Choose Update → for a backup that must never lose a file, Mirror → for a replica that should not keep
   what you deleted, Two-way when you edited on both sides.
4. Add an exclude mask if the plan is full of `node_modules`; turn on Compare contents if dates cannot be
   trusted (a restored backup, a cloud folder).
5. Apply. Watch it in the Operations drawer, or carry on with something else.

## What it deliberately does not do

- It never deletes silently. Deletions appear as rows in the plan and, when applied, go to the Recycle
  Bin.
- It does not guess an ambiguous row's direction. Same date, different size is left to you.
- The compare is bounded — 2 000 rows, an entry budget — and says so if it was truncated rather than
  pretending the plan is complete.

## Related

- [Transfers and the queue](/features/transfers-and-queue/) — what Apply hands the plan to.
- [Duplicate finder](/features/duplicate-finder/) — when the question is "do I have this twice?", not "which side is newer?".
- [Git integration](/features/git-integration/) — the same diff viewer, one file at a time against HEAD.

## Frequently asked questions

**Which sync modes are there?** Five, in the FreeFileSync style: Update → and Update ← copy new and newer files one way and never delete; Mirror → and Mirror ← make an exact replica, copying every difference and deleting target-only entries to the Recycle Bin; Two-way lets each side's new and newer files cross. A row whose direction is ambiguous — same date, different size — stays unchecked until you decide it.

**Can I trust size and date, or should I compare content?** Size and date are fast and right almost always. Turn on Compare contents when it matters: same-size pairs are then hashed on both sides, so byte-identical files with different dates drop out of the plan and a same-date content change is caught. Direction still comes from the dates.

**Can I exclude build junk?** Yes. The exclude mask takes a semicolon- or space-separated list of name patterns — *.tmp;node_modules;.git — and drops any row where any path segment matches, so a node_modules present on both sides is excluded down to its last file, not just at the top. The mask, the mode and the compare strategy are remembered for next time.

**What is Compare files?** Ctrl+Shift+D opens a side-by-side diff of two files — the two selected in the active panel, or the cursor file in each panel — with intra-line highlighting and next/previous-change navigation. It is the same viewer the git integration uses for a file's changes against HEAD.
