- Pascal 94.5%
- Assembly 4.1%
- HTML 0.5%
- Shell 0.4%
- C 0.2%
- Other 0.1%
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> |
||
|---|---|---|
| .github | ||
| components | ||
| default | ||
| doc | ||
| doublecmd.app/Contents | ||
| highlighters | ||
| install | ||
| language | ||
| libraries/src | ||
| pixmaps | ||
| plugins | ||
| scripts | ||
| sdk | ||
| src | ||
| tools | ||
| units | ||
| .gitattributes | ||
| .gitignore | ||
| build.bat | ||
| build.sh | ||
| clean.bat | ||
| clean.sh | ||
| doublecmd.help | ||
| doublecmd.lpg | ||
| doublecmd.png | ||
| doublecmd.sh | ||
| fpmake.pp | ||
| LICENSE.md | ||
| pinyin.tbl | ||
| README.md | ||
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.