Skip to content

Fix Windows folder timestamps corrupted by thumbs.db and other system files. Restores accurate modified dates based on actual content changes, not system-generated files. Features smart caching (57% faster), multi-depth processing, and UNC path support. Python CLI tool for Windows/Linux/macOS.

License

Notifications You must be signed in to change notification settings

DazzleTools/folder-datetime-fix

Repository files navigation

Folder DateTime Fix

Version Python Tests License

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 StartInstallationDocumentationReport Issue

The Problem

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.

Quick Start

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-all

That's it! Your folders now show their real modification dates.

Installation

From PyPI (Recommended when available)

pip install folder-datetime-fix

From Source

git clone https://github.com/djdarcy/folder-datetime-fix.git
cd folder-datetime-fix
pip install -e .

Common Use Cases

Fix Everything (Most Common)

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-all

Fix Specific Folder

Fix just one folder without affecting subfolders:

folder-datetime-fix "C:\Projects" --depth 0

Fix Folder + Immediate Children

Fix 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 deep

Network Drives

Fix 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-all

How It Works

The tool recalculates folder timestamps based on the actual content, excluding system-generated files:

  1. Scans your folder structure at specified depths
  2. Analyzes the real content (your files) vs system files
  3. Calculates what the folder date should be
  4. Updates the folder timestamp to match the newest actual content

System Files Automatically Skipped

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

Understanding Depth Levels

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

Command Line Options

Important Options

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)

Advanced Options

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

Examples

Preview Everything First (Recommended Workflow)

# 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

Fix Photos Folder

# 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 Development Projects

# 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"

Large Network Shares

# Use low-memory mode for millions of files
folder-datetime-fix //server/archive --fix-all --analyze low-memory --dry-run

Troubleshooting

Nothing seems to change?

System files might be newer than your content:

# Check what's happening with verbose mode
folder-datetime-fix . --fix-2 -vv

Permission errors?

Run 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

Need more details?

Support

Documentation

Contributing

Contributions are welcome! See CONTRIBUTING.md for development setup and guidelines. Please feel free to open issues or submit pull requests.

Like the project?

"Buy Me A Coffee"

License

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/.

About

Fix Windows folder timestamps corrupted by thumbs.db and other system files. Restores accurate modified dates based on actual content changes, not system-generated files. Features smart caching (57% faster), multi-depth processing, and UNC path support. Python CLI tool for Windows/Linux/macOS.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

No packages published