Folder Compare & Folder Diff (Directory Compare, Word, Excel & Binary Files)
Folder Compare & Folder Diff (Directory Compare, Word, Excel & Binary Files), a VS Code extension by Zovo
Compare two folders side by side, then open the diff of any file in them: code and text, Word, Excel, CSV, Parquet, PDF and binary files. A folder compare and directory diff tool that runs inside VS Code. Free, no sign-in, works offline.
Free, MIT license. Needs VS Code 1.90.0 or newer. Extension ID zovo.zovo-folder-diff, version 0.1.2.

Select two folders in the Explorer, right-click, and choose "Compare Selected Folders". The Left and Right panels show their full paths at the top of the view, so you always know which side is which.
Questions people ask
Is Folder Compare & Folder Diff (Directory Compare, Word, Excel & Binary Files) free?
Yes. Folder Compare & Folder Diff (Directory Compare, Word, Excel & Binary Files) is free and MIT licensed.
How do I install Folder Compare & Folder Diff (Directory Compare, Word, Excel & Binary Files)?
Click "Install in VS Code" above, or search for zovo.zovo-folder-diff in the Extensions view.
What it does
- Left and Right trees side by side, with the full path of each folder, size and modified time per file, and one status per row: changed, only left, only right, same, or error.
- Click a count to see only those rows. Equal files are hidden by default. Filter by name.
- The walk and the byte compare run in a background thread, with a progress bar and Cancel. Large trees stay responsive: 10,000 files per side finish in 1 to 2 seconds.
- Double-click a row to open the right diff for that kind of file:
- text and code open in the VS Code diff editor, on the real files, so you can edit and save
.docx,.docand.odtopen as Markdown side by side.xlsx,.xls,.ods,.csvand.parquetopen as CSV rows, one section per sheet.pdfopens as the text of every page- any other file (images, firmware, archives) shows hex lines around every range of bytes that differs, with a count
- Copy to right, Copy to left and Delete list every file first (new, overwritten, folder with N files). Nothing is written before you confirm. Deleted files go to the Trash by default.
- Export the result as Markdown, CSV or HTML.
- Compare a folder with a Git branch or tag: right-click a folder, then pick HEAD, a branch, a tag or a commit. Git runs locally with repository hooks turned off.
- Save a compare and open it again later (More, Save this compare; then "Open Saved Compare" in the Command Palette).

Free and Zovo Pro
Everything above is free, with no limit and no sign-in. Three Zovo Pro tools in the More menu save time on bigger jobs. Each has 3 free tries on your computer, and a try counts only when the tool gives you a result: a sync that changed files, or a report on screen. Escape or Cancel never uses a try.
| Tool | Free | Zovo Pro |
|---|---|---|
| Compare folders, open any file diff, filters, copy, delete, export, Git compare, saved compares | yes | yes |
| Sync folders: update both ways (newer file wins) or mirror one side to the other, after a full plan of every copy and delete | 3 tries | yes |
| Report of document changes: one Markdown report of the text changes inside every changed Word, Excel, CSV, Parquet and PDF file | 3 tries | yes |
| Three-way compare and merge: a common base and two changed copies; conflicts are listed, one-sided changes merge into the base | 3 tries | yes |
Zovo Pro is USD 19 once and turns on the Pro tools in every Zovo extension. Pay by card, with GitHub Sponsors or with PayPal. Nothing about Pro shows when you open a compare; it only comes up when you click one of the three tools with no tries left. To hide the three tools, set folderDiff.showProTools to false.

Safe with any folder
- Copy, sync and merge never write outside the folder you picked. A symbolic link on the target side is replaced, not written through, and a target folder that is a link to somewhere else is refused. Delete removes a link, never what it points to.
- Symbolic link loops are listed as links and never followed (unless you turn on
folderDiff.followSymlinks, which detects loops). - File names are shown as text: a name like `
or$(touch x)` is just a name. - Word and OpenDocument files that would unpack to more than 256 MB (zip bombs) are refused before anything is unpacked. Every converter runs in a separate thread with a memory cap and a time limit.
- No network calls and no telemetry. Files are read on your computer and never uploaded.
Tested on
In real VS Code 1.142, with the packaged extension:
- two versions of a real project (132 files, nested folders): 23 changed, 1 only left, 88 only right, 20 same, equal to an independent byte check
- Word
.docx, legacy.doc, OpenDocument.odt, Excel.xlsx, CSV, Parquet, PDF, PNG and a 2 MB firmware image: each opens its own diff - 10,000 files per side with 100 changed, 50 removed and 30 added: exact counts, done in 1 to 2 seconds
- a 300 MB zip bomb named
.docx, a cut.xlsxand random bytes named.pdf: each gives a message and the byte compare, and the next file opens normally - symbolic links on the right side that point outside the folder: Copy replaces the link to a file and refuses the linked folder; the files outside stay unchanged
- file names with HTML, shell commands, right-to-left marks, emoji, NFC and NFD forms and 244 characters: all listed as plain text
- dark and light themes
Settings
| Setting | Default | What it does |
|---|---|---|
folderDiff.compareMode | content | content compares the bytes of files with the same size. quick uses size and modified time only. |
folderDiff.exclude | node_modules/, .git/, dist/, .DS_Store, Thumbs.db | Names and globs to leave out. A trailing / matches folders only. |
folderDiff.useGitignore | true | Also leave out what .gitignore files ignore. |
folderDiff.followSymlinks | false | Off: a link is compared by its target. On: links are followed and loops are reported. |
folderDiff.showSame | false | Show equal files when a compare opens. |
folderDiff.maxTextDiffMB | 50 | Larger text files open in the byte compare. |
folderDiff.maxConvertMB | 200 | Largest Word, Excel, Parquet or PDF file turned into text. |
folderDiff.deleteToTrash | true | Delete moves files to the Trash. |
folderDiff.showProTools | true | Show the three Zovo Pro tools in the More menu and the Command Palette. |
folderDiff.askForRating | true | Ask once, after a few days of use, whether you want to rate the extension. Never after an error. |
Privacy
The extension makes no network calls and has no telemetry. Files are read on your computer and never uploaded. Git runs locally, only for "Compare with Git Branch or Tag", and only in a trusted workspace.
Limits
- Folders on this computer, or on the remote machine in a Remote window. Virtual file systems are not supported.
- Word, Excel and PDF files are compared by their text, not by layout or pictures.
- Copy keeps the modified time. File permissions and owners are not copied.
Works in VS Code 1.90 and later, Cursor, Windsurf and VSCodium.
Guides
Install Folder Compare & Folder Diff (Directory Compare, Word, Excel & Binary Files)
Click the button to open VS Code and install it, or press Ctrl+P (Cmd+P on macOS) in VS Code and run ext install zovo.zovo-folder-diff.
Free, MIT license. Needs VS Code 1.90.0 or newer. Extension ID zovo.zovo-folder-diff, version 0.1.2.
Source code and issues are on GitHub.
Zovo Pro and support
Zovo Pro: USD 19 once, every Zovo viewer. It turns on the Pro tools in this extension and in the other Zovo extensions you use. The free features stay free.
After a card payment your license key shows on the next page. Paste it with the command "Zovo Pro: Enter a key".
You can also support the work with no Pro:
Need your format supported?
Open a format request with a sample file, and I reply there whether it can be done. For USD 299 once, through this GitHub Sponsors tier, I add your file format or a missing feature to this extension, with tests, within 7 days.