Folder-Datetime-Fix restores accurate folder dates by removing common corruptions created by background features from Operating System tools and files, like thumbs.db, and beyond.
Quick Start • Installation • Documentation • Report Issue
Windows Explorer creates hidden files (thumbs.db, desktop.ini) that corrupt your folder timestamps:
| Before | After Fix |
|---|---|
| 📁 "2019 Projects" → Modified: Today ❌ | 📁 "2019 Projects" → Modified: Dec 2019 ✅ |
| 📁 "Old Photos" → Modified: Yesterday❌ | 📁 "Old Photos" → Modified: Jun 2018 ✅ |
| 📁 "Archived Work" → Modified: Last week ❌ | 📁 "Archived Work" → Modified: Mar 2020 ✅ |
This breaks chronological sorting and makes it difficult to find your actual recent work.
Fix your folders in 3 simple steps:
# 1. Install (for now the process is manual since the packages aren't on PyPI yet)
# Note: dazzle-tree-lib is a dependency
git clone https://github.com/djdarcy/dazzle-tree-lib.git
cd dazzle-tree-lib
pip install -e .
cd ..
git clone https://github.com/djdarcy/folder-datetime-fix.git
cd folder-datetime-fix
pip install -r requirements.txt
pip install -e .
# 2. Preview changes (always do this first!)
cd \your\project\folder
folder-datetime-fix . --fix-all --dry-run
# 3. Apply the fix
folder-datetime-fix . --fix-allThat's it! Your folders now show their real modification dates.
pip install folder-datetime-fixgit clone https://github.com/djdarcy/folder-datetime-fix.git
cd folder-datetime-fix
pip install -e .Fix all folders recursively, skipping system files automatically:
# Fix entire C: drive (preview first)
folder-datetime-fix C:\ --fix-all --dry-run
folder-datetime-fix C:\ --fix-all
# Fix current directory and everything below
folder-datetime-fix . --fix-allFix just one folder without affecting subfolders:
folder-datetime-fix "C:\Projects" --depth 0Fix a folder and its immediate subfolders (great for deep project directories especially on network shares):
# Using the convenient alias
folder-datetime-fix "C:\Projects" --fix-2
# Or explicitly
folder-datetime-fix "C:\Projects" --depth 0 --depth 1 --strategy deepFix timestamps on network shares and UNC paths:
# UNC path (use quotes for backslashes)
folder-datetime-fix --unc-path "\\server\share\projects" --fix-all --dry-run
# Or use forward slashes
folder-datetime-fix //server/share/projects --fix-allThe tool recalculates folder timestamps based on the actual content, excluding system-generated files:
- Scans your folder structure at specified depths
- Analyzes the real content (your files) vs system files
- Calculates what the folder date should be
- Updates the folder timestamp to match the newest actual content
By default, these system files are ignored when calculating dates:
thumbs.db,desktop.ini(Windows).DS_Store(macOS)$RECYCLE.BIN,System Volume Information- Other system-generated files
Depth controls which folders get fixed:
C:\Projects\ <- depth 0 (the root)
├── ProjectA\ <- depth 1
│ ├── src\ <- depth 2
│ └── docs\ <- depth 2
└── ProjectB\ <- depth 1
└── data\ <- depth 2
Common depth patterns:
--depth 0- Just the target folder--depth 1- Just immediate subfolders--fix-2- Target + immediate children (depth 0 and 1)--fix-all- Everything recursively
| Option | Description |
|---|---|
--fix-all, -fa |
Fix entire tree recursively (most common) |
--fix-2, -f2 |
Fix folder + immediate children |
--dry-run, -n |
Preview changes without applying |
--verbose, -v |
Show progress details (use -vv for more) |
| Option | Description |
|---|---|
--depth N |
Process specific depth level |
--strategy {shallow,deep,smart} |
How to scan folders |
--exclude PATTERNS |
Skip specific patterns |
--include PATTERNS |
Include normally-skipped items |
--analyze {auto,tree,low-memory} |
Memory/performance tradeoffs |
See full options with folder-datetime-fix --help
# Always preview changes before applying
folder-datetime-fix "C:\Important" --fix-all --dry-run --verbose
# Review the output, then apply if it looks good
folder-datetime-fix "C:\Important" --fix-all --verbose# Quick scan - just looks at immediate files
folder-datetime-fix "C:\Photos" --fix-all --strategy shallow
# Or deep scan - checks all nested folders for accuracy
folder-datetime-fix "C:\Photos" --fix-all --strategy deep# Fix all your git repositories
folder-datetime-fix "C:\Code" --fix-all --include ".git"
# Exclude build artifacts
folder-datetime-fix "C:\Projects" --fix-all --exclude "node_modules,*.cache,dist"# Use low-memory mode for millions of files
folder-datetime-fix //server/archive --fix-all --analyze low-memory --dry-runSystem files might be newer than your content:
# Check what's happening with verbose mode
folder-datetime-fix . --fix-2 -vvRun as Administrator or use --strict to stop on errors:
# Windows: Run as Administrator
# Or continue past errors (default behavior)
folder-datetime-fix C:\ --fix-all
# Or stop immediately on any error
folder-datetime-fix C:\ --fix-all --strict- See Troubleshooting Guide for verbose mode and debugging
- See Analysis Strategies for performance tuning
- See Recipes and Examples for more scenarios
- Full Documentation
- Analysis Strategies Guide - Memory and performance options
- Architecture Overview - How it works internally
- Exclude/Include Patterns - Fine-grained control
- Recipes and Examples - Real-world scenarios
Contributions are welcome! See CONTRIBUTING.md for development setup and guidelines. Please feel free to open issues or submit pull requests.
Like the project?
folder-datetime-fix, Copyright (C) 2025 Dustin Darcy
This project is licensed under the GPL-3.0 License - see the LICENSE file for details. The program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.