🇩🇪 Deutsche Version: README.de.md
CloudLockFixer with Delayed Action Service is a Windows tray tool that
reliably performs file/folder operations (rename / move / delete) inside
cloud-sync folders — even while the Windows Cloud Files filter (cldflt) is
blocking them. You queue an action and it is carried out "eventually,"
automatically — fire & forget.
cldflt.sys (installed by OneDrive, Dropbox, Google Drive, iCloud — anything
using the Cloud Files API) intercepts rename() at the driver level and
returns "Access denied"/EXDEV while it is active. The Microsoft-recommended
workaround is to replace rename() with copy()+delete() — which is
exactly what this tool does, plus delayed retries and optional pausing of the
sync client.
| Need | Entry point |
|---|---|
| Fix a OneDrive or Cloud Files "Access denied" rename/move/delete | Start the tray app with START.bat, then add a delayed task |
| Automate stuck file operations from scripts or LLM agents | Use PYTHONPATH=src python -m cloudlockfixer.cli |
| Inspect the safety model before deleting anything | Read docs/DESIGN.md |
| Queue work without opening the UI | Edit %LOCALAPPDATA%\CloudLockFixer\queue.txt |
| Verify the source tree | Run PYTHONPATH=src python -m pytest -q |
- Queue file/folder operations and let them run fire & forget
copy+deletefallback that bypasses thecldfltlock automatically- Chains of 1–4 steps with safe ordering — destructive steps run only after the preceding step succeeds (no data loss)
- Multiple input paths: CLI (for LLMs/scripts), human-readable
queue.txt, tray dialog, and an Explorer right-click context menu - Auto-retry on a configurable interval (default 2 h) and on demand
- Optional sync-client pause/restart during an operation (OneDrive provider)
- Optional preventive watcher that pauses/resumes the sync client based on folder activity
- Autostart with Windows; single-instance tray app
- Windows (the
cldfltfilter is Windows-specific) - Python 3.10+
- PySide6 (>= 6.7)
- Clone the repository
pip install -r requirements.txt- Start the tray app: double-click
START.bat, orPYTHONPATH=src python -m cloudlockfixer
Starts with Windows when autostart is enabled. Tray menu: Add task…, Run now (also with OneDrive pause), Interval (30-min steps, default 2 h), Start with Windows, Open queue/log.
clf add --rename "C:\...\OldFolder" "NewName"
clf add --move "C:\local\x" "C:\onedrive\x"
clf add --delete "C:\onedrive\old"
clf add --chain 'move "C:\local\x" "C:\onedrive\x" && delete "C:\onedrive\old"'
clf list
clf run-now [--pause]
(dev invocation: PYTHONPATH=src python -m cloudlockfixer.cli ...)
A file at %LOCALAPPDATA%\CloudLockFixer\queue.txt, one line per task
(rename / move / delete, chaining with &&). Consumed lines are
automatically commented out with #>.
- Chains (1–4 steps): step N runs only after step N-1 succeeds. A
destructive
deleteruns only after its preceding step succeeded → no data loss. - copy+delete primitive: an in-place attempt is made first; on a lock it automatically falls back to copy → verify → delete. Idempotent (safe to retry).
- Worker: runs on start + every 2 h (configurable) + on demand. If a task is stuck repeatedly, the responsible sync client is paused for that run and restarted afterwards.
Useful search phrases: OneDrive access denied rename, cldflt.sys locked file, Windows Cloud Files filter copy delete fallback, OneDrive 0x8007016A file operation, Dropbox Google Drive iCloud locked folder retry, and
CloudLockFixer queue.txt.
CloudLockFixer is not a generic file unlocker, anti-malware tool, backup client or cloud-storage replacement. It is a local-first queue and retry helper for files that are already under the user's control but temporarily blocked by a cloud-sync provider.
- P1 (done): Core (copy+delete, chains, retry) · CLI ·
queue.txt· Tray · Autostart · OneDrive provider. - P2 (done): Explorer right-click context menu (HKCU cascade, opt-in via tray toggle).
- P3 (done): Preventive watcher (observes the change rate of configured folders → pauses/resumes the sync client; bounded, stat-only, does not hydrate online-only placeholders; opt-in).
- Tests:
pytest, 88 passing (core + P2/P3 + i18n + multicloud regressions). - Open/future: more provider adapters (Dropbox / Google Drive / iCloud); optional suppression of sync-client relaunch during long operations.
Windows-only; the core is platform-neutral for later ports.
Design notes: docs/DESIGN.md.
MIT — see LICENSE.
This project depends on PySide6 (Qt for Python), licensed under the LGPL v3. PySide6 is used as an unmodified third-party dependency.