This is not a single program, more some encouragement and a little slowly-developed advice.
I empathise, but I'm sceptical about your chances of finding a single program that does everything - so am offering some partial advice which I've evolved over many years. You should adapt it to do whatever YOU need as there is no perfect solution.
My key is to make maximum use of the filename - it will not easily get separated nor corrupted unless you do it yourself. You can sort easily using all sorts of programs, starting with Windows Explorer.
If you establish a consistent filename routine it will help whatever other programs you apply for specific tasks.
I'll come back to the actual means of editing the filenames a bit later.
Don't lightly erase or modify the serial number put on the file by the camera - you can cut it down to say a 5-digit version deleting leading zeroes etc, but if it's in there somewhere you can search through the whole hard drive if you need to find other copies of a file.
I use the filename a bit like a simple chain of Tags such as are put onto MP3 (and other?) files, but for your photos punctuate the tags simply by a space.
Start with the key date in yymmdd format; with luck all the copies of your pic will have some remnant of the originally attached date. Try to avoid modifying that key date even if you modify the file or some of the copies later. The date is a vital part of the basic file identity. Having that date at the beginning of the filename will give you consistent sorting; if you use the yyddmm system, or a mixed version, the sorting will be less logical.
Next add a shortish identifying text string - making this the description or name of the file, by its content or event. You can concatenate several words by capitalising the first letters so that there are no spaces - say: BabyMarysChristening, or MonacoGrandPrix. If you prefer, you could have more than one description tag, separated by spaces.
If the same descriptor applies to a whole group of files - say the same event - you can manually add a simple serial number to the concatenated descriptor, to get MonacoGrandPrix01 for one file and MonacoGrandPrix02 and MonacoGrandPrix03 for the next two different shots. That approach can ease the editing process if you've stored a block of image files under a single subfolder heading.
The third vital tag is the (possibly stripped-down) original file number put on by the camera.
So far, we now have a filename with three elements:
020526 MonacoGrandPrix03 00742.jpg
You now need a way of tagging any different versions of the basic shot which you or others have created or are about to create, such as editing the shot by cropping and/or altering the brightness or contrast.
You can devise one of your own, or consider the simple system I have evolved:
Each time I create an edited version I put a letter suffix on the original serial number, simply to differentiate it from the original. This gives me:
020526 MonacoGrandPrix03 00742.jpg - unedited file
020526 MonacoGrandPrix03 00742a.jpg - say, an extract (cropped)piece of a small part of the original
020526 MonacoGrandPrix03 00742b.jpg - say, a different cropped version, which might well become the one I use as the source for other edits
020526 MonacoGrandPrix03 00742bc.jpg - where the c denotes a further change, perhaps with enhanced contrast
There are many changes you might make, and if you want to be rigorous and always use the same suffix letter for the same operation, it gives you lots of work, manually editing the filenames. I don't give myself that problem, and simply add a new suffix letter each time I make a change. That allows differentiation, and then I can view the image to see what it was.
One other edit function which may be worth including in the filename is if you create a lower-res version of the filer of a block of files to ease sending it/them of files by email; if you never do this, skip the next few words.
If a file has been processed by an image editor program, as you save the reduced file add "30%" or whatever linear reduction you used, as a final part of the filename. It can then be safely saved alongside the non-reduced file.
So we now have:
020526 MonacoGrandPrix03 00742bc 30%.jpg
as well as
020526 MonacoGrandPrix03 00742bc.jpg
Your current experience - saving files in subfolders with Subject- or Event-names is a good way to contain the filename editing process; you can leave them like that to collate things.
I have found it safest to have thumbnails of the files visible as I edit the filename - the visual check is a powerful way of stopping yourself - making errors is not difficult when working with just a string of filenames using WE.
I expect the best-known image management programs allow easy filename editing - I have relied on Paintshop Pro for many years.
Remember that WE, and other programs you may use to organise your files, may have quirks or limitations in the way they sort - eg: some only sort using a limited number of characters, perhaps the first 8;
- WE in W7 does not always export a block of files to, say a USB stick, in the order in which they started. However a program called Project_CopyInOrder.aspx
from a website:
solved that problem for me.
Files with incomplete or absent dates or other data:
If you have scanned or old image files which therefore have no auto-date, just estimate or guess the date, or at least the year, so at least you have a consistent filename. If you want to indicate that the date may later need editing, include a "q" after the uncertain or incomplete data - don't use a "?" as it is not usually permitted by the operating system.
For items with no auto-serial-number, reserve a block of higher-value serial numbers, ideally which don't cover the numbers your past/current cameras have used, and allocate them as needed. Again, add a trailng "q" or other simple marker as a reminder.