Batch Folder Sorter is a desktop helper app for preparing ingest folders from CSV metadata.
It is intended as a helper tool for working with the meemoo instroom tool workflow.
It is meant for people who need to sort large batches of files into a clean folder structure before ingest, archiving, delivery, or internal review, without having to do the folder work manually.
When file batches arrive, they are often:
- mixed together in one folder
- inconsistently named
- partially matching the metadata
- full of files that do not belong in the final ingest structure
Batch Folder Sorter helps turn that messy starting point into a structured output that is easier to review and ingest.
This app is a helper tool, not a replacement for collection review or ingest quality control.
Please keep in mind:
- this tool modifies file structures (creates folders and moves files), so if you are unsure, please use it on a copy of your data
- always work on a copy of your source material when possible
- always review the output before final ingest or delivery
- unmatched files may be moved to
_EXTRA_FILES, so they still need human review Undorestores only the last successful batch action
The app takes:
- a
ROOTfolder with files - a CSV file with a
Mapnaamcolumn
It then matches files to the identifiers in the CSV and moves them into the correct folders automatically.
Files that do not match are moved into _EXTRA_FILES instead of being mixed into the main structure.
Use this when filenames directly match the values in the CSV.
Example:
CSV Mapnaam: ITEM_001
File: ITEM_001.jpg
Output:
ROOT/
ITEM_001/
jpg/
ITEM_001.jpg
Use this for artwork-style batches where the filename contains:
- an IE identifier
- a sequence number
- a master suffix like
_M
Example:
OBJ001_001+FO+FDP_M.tif
OBJ001_001+FO+FDP_B.tif
OBJ001_002+FO+FDP.tif
Output:
ROOT/
OBJ001/
Masters_16bit/
OBJ001_001+FO+FDP_M.tif
Bewerkt_8bit/
OBJ001_001+FO+FDP_B.tif
OBJ001_002+FO+FDP.tif
Additional example with a dashed IE identifier:
CSV Mapnaam: 2814-001
Files:
2814-001_001_M.tif
2814-001_001_B.tif
Output:
ROOT/
2814-001/
Masters_16bit/
2814-001_001_M.tif
Bewerkt_8bit/
2814-001_001_B.tif
Notes:
Artwork batch modekeeps the original filenames_Mis treated as master_Band files without a suffix go toBewerkt_8bit- IE identifiers that contain dashes, such as
2814-001, are supported when that exact value exists in the CSV
- Clean desktop interface
- Standard mode and artwork batch mode
- CSV validation before processing
_EXTRA_FILEShandling for unmatched filesUndofor the last successful batch- Release downloads for macOS and Windows
Download the latest release from:
Choose the file that matches your system:
BatchFolderSorter-macos-arm64.zip
For Apple Silicon Macs (M1,M2,M3,M4)BatchFolderSorter-macos-x86_64.zip
For Intel MacsBatchFolderSorter-windows-x64.zip
For 64-bit Windows systemschecksums.txt
SHA256 checksums for release verification
- Download the correct macOS zip.
- Unzip it.
- Move
BatchFolderSorter.apptoApplicationsif desired. - Open the app.
- If macOS blocks it on first launch:
Open
System Settings -> Privacy & Securityand allow the app to run.
Note:
- The app is not notarized yet, so the first launch may require manual confirmation in macOS.
- Download
BatchFolderSorter-windows-x64.zip. - Unzip it.
- Open the extracted
BatchFolderSorterfolder. - Run the application executable.
If Windows SmartScreen appears, continue only if you trust the release source.
- Open the app.
- Choose the
ROOTfolder. - Choose the CSV file.
- Select
Standard modeorArtwork batch mode. - Click
Run Batch. - Review the result in the
Statusarea. - If needed, click
Undoto restore the last successful batch.
The CSV must contain a Mapnaam column.
Example:
Mapnaam
OBJ001
OBJ002
OBJ003If the selected CSV does not match the selected ROOT folder, the app will stop and show an error instead of moving everything into _EXTRA_FILES.
Hidden macOS Files
Batch Folder Sorter does not create hidden ._* files.
These files are usually created by macOS as metadata sidecar files, especially when data is copied to or used from external drives that move between macOS and Windows or other non-Apple filesystems.
If these files appear in a batch or in an ingest workflow, they should be handled separately before ingest.
For a practical explanation and cleanup example, see this Apple Community discussion:
- Python 3.9+
Install dependencies:
python3 -m venv venv_gui
source venv_gui/bin/activate
pip install -r requirements.txtsource venv_gui/bin/activate
python gui.pysource venv_gui/bin/activate
pyinstaller BatchFolderSorter.specGitHub Actions is configured to build release artifacts for:
macOS arm64macOS x86_64Windows x64
Manual build workflow:
- Open the
Actionstab in GitHub - Run
Build And Release - Download the generated artifacts
Tag-based release workflow:
git tag v1.0.0
git push origin v1.0.0When a tag like v1.0.0 is pushed, GitHub Actions will:
- build all three platform artifacts
- create or update a GitHub Release
- upload the zip files
- upload
checksums.txt
Undorestores the last successful batch only- The repository ignores local builds, test samples, and virtual environments





