Repository navigation
Releases: nikolaygekht/folder.cleaner
Releases · nikolaygekht/folder.cleaner
Release list
0.2
Safety
- A configured folder that is itself a junction or symbolic link is no longer cleaned.
It is reported and skipped. Previously the sweep followed it and deleted files in the
link's target — outside the tree you pointed it at. pathmust now be absolute, and cannot be the root of a drive. Both are refused
before anything is deleted: a relative path resolves against whatever folder a scheduled
task happens to start in, and"C:\\"or"/"means a whole volume.
Logging
- The log now lives beside the configuration file, not beside the program. With no
--configthat is the same folder as before; point--configelsewhere and its log
follows it, so one installed copy can serve several jobs without mixing their records. - The default level is now
info. Every run records which configuration it read, the
rules each folder was cleaned by, what it gave up and the totals. The only way to undo a
deletion is a backup, so a run should not be able to leave no record that it happened. - The four levels now stack, each with one job:
erronly what stopped something ·
warnwhat the run stepped over ·infothe account of the run ·dbga line per file
removed, plus call stacks. - Failures read on one line, with the reason —
Could not delete file X; skipping it. IOException: The process cannot access the file— and are reported once instead of twice.
Call stacks appear only atdbg. --log-level dbgnow prints to the screen, as it always claimed to.
Rehearsals (--dry-run)
- A rehearsal says "would delete", never "deleted", on every line.
- A rehearsal writes no log at all — not even the
logsfolder. It changes nothing, so
it records nothing, and it now runs even where a real run could not start its log. - Add
--log-level dbgto have it list the files:FileCleaner --dry-run --log-level dbg.
Upgrading
Nothing about the configuration format changed, but a file that names a relative path or a
drive root will now stop the run instead of cleaning something unintended — the report says
which entry and why, and nothing is deleted. Expect log files where a quiet run previously
left none, and look for them beside filecleaner.json.
0.1 - First Release
First release of the app:
- console version
- configured via JSON file
- Windows and Linux
- portable setup