Use the original filenames, including extensions.
Copy the filenames from the client’s selection into a plain text list. One filename per line is simplest. A request such as DSC_0412.jpg can match DSC_0412.CR3. A gallery position such as “photo 412” cannot identify that file.
Example request list
DSC_0412.jpg
DSC_0427.jpg
DSC_0450.jpg
DSC_9999.jpgThese are the names in the built-in synthetic example.
Have the selected JPGs instead of a text list? Choose or drop .jpg or .jpeg files into the tool. It reads only each file's name, appends names to the editable list and skips duplicates. The files must keep their original filenames: this does not inspect image contents or embedded photo metadata to identify a photo.
If the gallery renamed the exports, retrieve its original filename list first. The tool cannot reverse arbitrary renaming, read filenames from screenshots or guess from a few digits.
Commas, semicolons and tabs also separate requests. Spaces inside a filename are preserved. For a name containing a comma or semicolon, quote the whole name. Copy only the filename column from a spreadsheet, without a header, row numbers or other columns: this is a filename-list parser, not a general spreadsheet importer.
Choose RAW mode and compare the complete stem.
- Open the tool and choose the source folder containing your originals.
- Paste the client’s filenames, or choose or drop the selected JPG or JPEG files with unchanged original filenames.
- JPG input selects JPG / full filename → RAW original automatically and checks matches immediately when the source folder is available. For a pasted list, choose this rule under Match rule.
- Review the editable list. Optionally select Include matching XMP sidecars in RAW mode, then use Check matches after pasting names or changing the list or options.
The stem is everything before the last extension. Matching ignores letter case, so dsc_0412.JPG and DSC_0412.CR3 share the same stem. It is not a partial-number or image-similarity search.
| Requested name | Source file | RAW-mode result |
|---|---|---|
DSC_0412.jpg | DSC_0412.CR3 | Full stem matches |
DSC_0412.jpg | DSC_04120.CR3 | Does not match |
portrait.v2.jpg | portrait.v2.NEF | Full stem matches |
Keep the final extension when a base name contains dots. Entering portrait.v2 alone treats .v2 as the extension, so it searches for the stem portrait.
Supported RAW extensions are CR2, CR3, NEF, ARW, DNG, RAF, ORF, RW2, PEF, SRW and RAW. A JPG or TIFF with the same stem is not selected in RAW mode. To copy those files by their complete name, use the exact-filename workflow.
Resolve names that point to more than one original.
Two cameras can both create DSC_0450.CR3. If both appear in the selected folder tree, that request is ambiguous. The tool does not choose the first one. Two different supported RAW extensions sharing one stem also produce an ambiguous result.
Same name, different camera folders
shoot/camera-a/DSC_0450.CR3
shoot/camera-b/DSC_0450.CR3Choose a narrower source folder and check again. Pasting a folder path into the request does not resolve this: only its final filename is used for matching.
A missing request has no matching RAW stem in the selected source. Check the name, mode and source folder. Case-only differences in requests are collapsed as duplicates; multiple source candidates whose names differ only by case still remain ambiguous.
XMP inclusion uses the RAW file’s stem and its own folder. One matching sidecar is copied; no sidecar leaves the RAW match valid. Multiple matching sidecars in that folder make the request ambiguous. The app does not create or edit XMP.
Save the confirmed files and keep the report.
Choose Copy to new folder or Download ZIP. Both retain the source-relative paths inside a selected/ folder and include selectpack-matches.csv. The report lists each unique requested name, its status, matched paths and the reason.
When any request is missing or ambiguous, file export stays blocked until you resolve it or explicitly acknowledge exporting only the confirmed matches. Ambiguous requests are excluded from the selection. You can download the CSV separately after checking, even when file export is blocked.
In the synthetic example, four requests produce two matches, one missing request and one ambiguous request. With XMP enabled, the two matches select three files: two dummy RAW files and one sidecar. This demonstrates the rules; it is not a real photograph or customer result.
A successful folder copy adds COMPLETE.txt. It confirms the copy operation finished, not that every original request was matched—check the CSV for unresolved requests. A canceled or failed copy can leave a partial new folder. Keep your originals and rerun into a new folder after checking the problem.
Keep the first batch small.
The intended environment is desktop Chrome or Edge on Windows. Mobile use is not supported; other browsers and macOS have not been validated. Start with disposable copies and inspect the output before relying on it.
- Source folder: up to 50,000 files, including files you do not request.
- List: up to 2,000 entries before duplicate removal.
- ZIP: up to 200 MiB for the completed archive, including files, report and archive overhead. The app may reject a near-limit selection conservatively. ZIP packages the bytes without compressing or converting images.
- Folder copy: available in supported desktop Chrome / Edge; writes one file at a time to a new output folder. Actual OS permission flows and large jobs, including 1 GB copies, still need independent validation.
SelectPack matches names and copies files. It does not inspect image contents, decode RAW, edit photos, read a Lightroom catalog or reconstruct renamed gallery numbers.
See the decisions before choosing your own files.
The synthetic example opens with matched, missing and ambiguous requests. No folder access or download happens until you choose it.
Selected files and pasted lists are processed in your browser. Loading this website makes ordinary requests to its hosting provider. No advertising or analytics scripts are installed. Read the privacy notice.