The problem
Anyone who has come back from a trip with 1,200 files named IMG_20250112_084211.jpg knows the pain: manual renaming is not an option, and the existing free renamers are either ad-ridden, Windows-only abandonware, or destructive without undo. This project builds a proper bulk renamer as a desktop application: load files or whole folders, stack rename rules (add prefix/suffix, sequential numbering with padding, find-and-replace, case conversion, EXIF/date insertion), and watch every new filename preview live as rules are edited. Before renaming, the engine checks for collisions and reserved names; during the run it writes a backup CSV mapping old names to new ones, so one click (or Ctrl+Z) restores everything. Saved templates capture whole rule stacks — "photo trip sort", "music library tidy" — as shareable JSON. The demo ships with a realistic photo-folder scenario so the preview, log and undo all work out of the box.
How it works
- The user adds files or a folder (optionally including subfolders); the file list loads with sizes and current names.
- Rules are added to the stack — e.g. prefix "Goa2025_", then 3-digit numbering, then strip "IMG_", then lowercase extensions.
- The preview engine applies the rule stack to every filename in order and renders the before/after table live.
- On Rename, a pre-flight pass checks for collisions, illegal characters and reserved names; conflicts are reported, not executed.
- A backup CSV (old name → new name) is written, then files are renamed with per-file error handling.
- The run log records timing, affected counts per rule and any skips; the Undo button (or Ctrl+Z) reverses the run from the backup.
- The rule stack can be saved as a named JSON template and reapplied to any future folder in one click.
Tech stack:
- Desktop: Python with Tkinter/PyQt (or Electron + Node.js)
- File operations: OS-level rename with atomic per-file handling
- Preview engine: pure-function rule pipeline, testable without touching disk
- Templates: JSON rule-stack serialization
- Logging: timestamped run logs with CSV backup
- Packaging: PyInstaller / Electron Builder notes
| Parameter | Value |
|---|---|
| Rule types | 8+ (prefix, suffix, numbering, replace, case, date, trim, extension) |
| Preview | Live, per-file, updates on each keystroke |
| Conflict check | Pre-flight collision + reserved-name detection |
| Undo | Full restore from backup CSV |
| Demo scenario | 1,248 files renamed in approximately 6 s (design target) |
| Templates | JSON, shareable, one-click apply |
Project features
- [Rule stacking] Combine prefix/suffix, sequential numbering with zero-padding, find-and-replace, case conversion and date-pattern rules in any order.
- [Live before/after preview] Every filename's new name updates instantly as rules are typed — nothing is renamed blind.
- [Conflict detection] Pre-flight check flags name collisions and reserved/illegal names before the run starts.
- [One-click undo] A backup CSV maps every old name to its new name; undo restores the originals exactly.
- [Rename log] Timestamped run log with per-rule affected counts, errors and skips, exportable as text.
- [Shareable templates] Save any rule stack as JSON, apply it in one click, share it with others.
- [Folder recursion] Include subfolders, filter by extension or name pattern, and select/deselect individual files.
What is included
- Complete desktop application source code
- Rule engine with live preview and conflict detection
- Undo system with backup CSV logging
- Template save/apply module with sample templates
- Packaging notes (installer build steps)
- Project report PDF (background, rule-engine design, safety design, methodology)
- PPT presentation for final review
- Viva Q&A preparation document (rule pipelines, filesystem safety, undo design)
Limitations & prerequisites
- The demo's 1,248-files-in-6-seconds figure is a design target measured on the developer's machine class, not a guaranteed speed on all hardware.
- Undo covers renames performed by the app from its own backup CSV; files renamed or moved externally afterwards may not restore cleanly.
- EXIF-date rules depend on metadata actually present in the files; files without EXIF fall back to file dates.
- Network-drive and cloud-synced folders (OneDrive/Dropbox) can lock files mid-rename; the log reports these as skips.
- The demo UI is a desktop window; a web version of the renamer is future scope.
Frequently Asked Questions
How does the live preview work?
The rule stack is a pure-function pipeline: each rule transforms the filename list in order, and the table re-renders on every keystroke. No file is touched until you press Rename.
What happens if two files would get the same new name?
The pre-flight check detects collisions before anything runs and reports them. You can fix the rules or enable skip-on-conflict; the app never overwrites silently.
How does undo work?
Before renaming, the app writes a backup CSV mapping every old name to its new name. Undo reads that file and renames everything back — exact restore, including the original order.
What are templates?
A saved rule stack as JSON — e.g. "photo trip sort" (prefix + numbering + lowercase ext). Apply it to any folder in one click, and share the JSON file with others.
Can it handle subfolders?
Yes — folder recursion is a toggle, with extension and name-pattern filters so you can target just .jpg files three levels deep, for example.
Is this project suitable for a final-year project?
Yes — for Computer Science and IT programs. It is a real desktop utility with a rule engine, filesystem safety design and undo — the kind of careful engineering examiners respect. Suitable for B.E./B.Tech final-year projects in Computer Science and IT.
Components & software requirements
- Desktop: Python with Tkinter/PyQt (or Electron + Node.js)
- File operations: OS-level rename with atomic per-file handling
- Preview engine: pure-function rule pipeline, testable without touching disk
- Templates: JSON rule-stack serialization
- Logging: timestamped run logs with CSV backup
- Packaging: PyInstaller / Electron Builder notes
Delivery information
Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.
Support terms
Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.