Double Commander is a free cross platform open source file manager with two panels side by side. https://doublecmd.sourceforge.io
  • Pascal 94.5%
  • Assembly 4.1%
  • HTML 0.5%
  • Shell 0.4%
  • C 0.2%
  • Other 0.1%
Find a file
heredie 9a172ea610 FIX: sync - suspend panel watchers during copy/delete (avoid O(n²) reload)
A folder-sync copy/delete on a large LOCAL directory crawled at ~1 file/sec.
The cost is not the file operation (raw unlink runs hundreds-thousands/sec)
but the source panel's directory watcher: each changed file fires a watcher
event, and once >100 (or >25% of the listing) pending changes accumulate,
TFileView reloads the WHOLE directory (ufileview.pas), rate-limited to once
per second. During a bulk operation this full reload keeps re-firing, so the
whole thing becomes O(n²) and stalls — the sync runs the operation inline on
the GUI thread, so each reload directly blocks it.

Add TFileView.SetWatcherEnabled (public wrapper over the existing protected
EnableWatcher, plus one reconciling reload on resume) and have the sync
dialog suspend both source panels' watchers around the copy/delete run and
the compare-grid delete buttons, restoring them via try/finally. Operations
now proceed at filesystem speed; the panels refresh once at the end.

Cross-platform: the reload path is platform-agnostic and is fed by inotify
(Linux), ReadDirectoryChangesW (Windows) and FSEvents (macOS) alike.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 05:40:42 -06:00
.github FIX: Build snapshots 2026-05-28 20:49:27 +03:00
components ADD: IKASPathEditMate in KASPathEdit for further refactor 2026-05-31 23:31:23 +08:00
default ADD: MultiArc - FallBackArchivers (#1837) 2024-09-17 00:07:21 +03:00
doc UPD: Minimal Lazarus version 2026-03-31 18:23:20 +03:00
doublecmd.app/Contents UPD: new Icon for macOS, better than before on macOS 15, issue #2552 2025-10-20 17:23:01 +08:00
highlighters ADD: JSONC highlighter (issue #2898) 2026-05-31 16:58:48 +03:00
install ADD: SevenZip - install plugin under Linux (experimental) 2025-10-11 13:39:55 +03:00
language UPD: update zh_TW 2026-06-02 13:12:09 +08:00
libraries/src UPD: libunrar build script 2025-06-28 16:28:21 +03:00
pixmaps ADD/StashFS: step-8: register Stash to VFS 2026-06-05 08:55:40 +08:00
plugins FIX: Zip plugin - allow cancelling TAR archive packing mid-operation (#2874) 2026-05-23 12:12:23 +03:00
scripts FIX: RabbitVCS 0.16 compatibility 2021-02-20 20:32:36 +00:00
sdk UPD: C SDK (#2634) 2025-12-09 09:17:58 +03:00
src FIX: sync - suspend panel watchers during copy/delete (avoid O(n²) reload) 2026-06-19 05:40:42 -06:00
tools FIX: JSON-Pack utility 2023-07-11 23:03:27 +03:00
units DEL: Don't read Lazarus revision 2021-08-21 11:17:35 +03:00
.gitattributes FIX: Unset 'text' attribute for '*.bat' 2023-01-19 21:12:20 +03:00
.gitignore FIX: Main window loses focus after confirming file/folder deletion (fixes #2160) (#2760) 2026-02-21 12:38:55 +03:00
build.bat UPD: Line-endings 2023-01-19 21:17:15 +03:00
build.sh UPD: Build mode name, build scripts 2021-06-05 21:50:30 +03:00
clean.bat UPD: Rename DCPcrypt to KAScrypt 2023-12-04 20:25:15 +03:00
clean.sh Update clean.sh (#1504) 2024-03-02 17:32:51 +03:00
doublecmd.help UPD: Enable Chinese online help 2026-01-14 18:59:42 +03:00
doublecmd.lpg UPD: Rename DCPcrypt to KAScrypt 2023-12-04 20:25:15 +03:00
doublecmd.png UPD: Use new icon also in trunk 2010-01-15 11:26:14 +00:00
doublecmd.sh ADD: Pass command line arguments 2023-05-15 23:08:27 +03:00
fpmake.pp ADD: MacCloud to fpmake.pp 2026-03-14 12:33:12 +03:00
LICENSE.md ADD: GitHub license file (fixes #660) 2022-11-30 20:31:09 +03:00
pinyin.tbl UPD: Rename Pinyin table file 2021-08-29 12:54:21 +03:00
README.md UPD: Added clarifications (#713) 2022-12-12 19:42:27 +03:00

Double Commander is a free cross-platform open source file manager with two panels side by side (or one above the other). It is inspired by Total Commander and features some innovative new ideas.

Double Commander can be run on several platforms and operating systems. It supports 32-bit and 64-bit processors. See Supported platforms for a complete list.

See Double Commander in action in the Screenshot Gallery.

Where to start

Download

Go to the Double Commander download page to download the latest release.

You can check the latest version on the Versions page.

See if Double Commander is supported for your platform on the Supported platforms page.

Develop

For more information on the development of Double Commander, see the Development page.

Discuss

Go to our forum for discussions. There are English and Russian sections.

If you want to stay up-to-date with the project, you can check out the available news feeds.