I've had my camera for about a year, and having taken 9999 images the camera's file naming system has rolled over to 0001..

I usually import my photos to Lightroom, so Lightroom sorts them into different folders based on year..like 2010, 2011, and then into further sub-folders by date.

I am doing some stock photography, so I am exporting all the final images into a same folder. Since some of the images will have duplicate names, there is a risk that I will overwrite files on export.

I would like to know how you handle this situation? do you use a specific naming strategy, or just simply put everything into different folders on export?

  • 2
    \$\begingroup\$ If you have/use Lightroom, you can do batch renames of your images along the lines of the suggestions in the answers below. Select the images you want to rename and hit F2, and you can build up a naming strategy using the custom presets and options in the dialog that appears. \$\endgroup\$
    – Conor Boyd
    Feb 14, 2011 at 19:44
  • \$\begingroup\$ thanks all for feedback.. lightroom did a good job to sort every imported files into folders. I am thinking maybe i should just break those final images into different folder, like the first 9999 images, folder01, and second 9999 images in folder02.. it is also easier to trace where the photos are. \$\endgroup\$
    – kang
    Feb 15, 2011 at 5:44

7 Answers 7


File naming is one of those things where everyone has a personal preference, but here are a couple things that folks do frequently:

  • rename the files to include the original shooting date. So instead of IMG_0001.JPG you might end up with 20110214-0001.JPG
  • include a short shoot description. Continuing my example, perhaps you'd have 20110214-smithheadshot.JPG

As you noted, this only becomes an issue if you try to put all of your files in the same folder; if you avoid this it won't be a problem.

The good news is that Lightroom can rename files automatically when you import; check out the File Renaming section of the Import screen.

  • 2
    \$\begingroup\$ +1 for your second suggestion and for mentioning Lightroom's renaming capabilities. My variation is that I import into folders by year, month, then event (or location), and finally index. So I might have 2011-02-CastleHill-0001.dng \$\endgroup\$
    – Conor Boyd
    Feb 14, 2011 at 19:42

Honestly, folders are the way to.

There are workarounds but do you really want 100,000 images in the same folder? It's going to take extremely long to open on some machines and hard to navigate when you have a tiny scrollbar and too many thumbnails being read or generated.

You can all root them in one main folder: /Pictures

And divide into subfolders:




OR ... whichever breakdown is significant to you. Dates are good because they sort well.

Personally I have one level in between which makes sure that my second level folders never exceed the size of a DVD which is what I use for backups. So:


When V031 reaches 4.4 GB, I will create a V032. It makes backups much easier and also easy to find off-line files since the DVDs are labeled with their Vxxx number.

  • 5
    \$\begingroup\$ @kang seems to be using a single folder for exporting for stock, not everyday usage. It sounds as if the non-final images are normally in separate folders. \$\endgroup\$
    – chills42
    Feb 14, 2011 at 18:16
  • \$\begingroup\$ @chills - Yes, but since the OP suggested to use folders himself, I assumed this was a possibility for stock as well, perhaps with a common root as I suggested. \$\endgroup\$
    – Itai
    Feb 15, 2011 at 3:45
  • 5
    \$\begingroup\$ The problem with this is there is still no unique naming scheme for the images. If multiple images with the same name are supplied to a customer, and they want one of them, there is going to be confusion. The files would have to renamed or stored in nested folders, which makes a mess of creating web pages or flash displays or passing those folders to the customer for any purpose. Renaming them on import into a unique name helps greatly, especially if the image is named by a date/timestamp. I've done that for years, and can identify an image's event by the filename, without dupes. \$\endgroup\$
    – Greg
    Feb 15, 2011 at 5:53

One good way to handle this is to add a date/time into the file name.

For instance:

  • instead of IMG_1234.jpg, have the file renamed to IMG_YYYYMMDD_1234.jpg. That way if later down the road you have another IMG_1234.jpg, the exported versions would be dated. So if the images were shot on Feb. 14, 2010 and Jun. 30, 2011 you would end up with IMG_20100214_1234.jpg and IMG_20110630_1234.jpg.

In Lightroom, there are filename templates that can simplify this process.


If you are on a mac there is an awesome program called A Better Finder Rename http://www.publicspace.net/ABetterFinderRename/ and it will give you all sorts of options to prepend or add numbers, letters etc to giant groups of files.

I shoot as well and use it to give specific job titles to batches of files ex. beachname/client/# etc

All the best



Like most people here I embed the date in the filename, in YYYYMMDD format. Since I've started shooting with two cameras, I've given each camera a letter code, to avoid having two legitimately different images with the same filename. So, a typical file might be 20110601_B0231.cr2.

A downside to this is strictly sorting the files by filename won't interleave the pictures. I suppose you could ensure the camera's times are synchronised, and introduce a time portion (eg 20110601_073002_B0231.cr2 for 7:30:02 am) but that's getting to be a pretty long filename!

When I show proofs to someone, I ask them to refer to pictures by that one-letter-four-number code.

I use the garden variety Canon software to slurp pictures off of the camera and rename them on the way; it is smart enough to detect the different cameras to give that letter code.

I do also organise them in to date specific folders like most people here do.


My technique to handle duplicate file numbers is to spearate them into year/yyyymmdd folder format and keep the original names.

When I export photos I always fill in the headline field on the EXIF, so add that to the front of the file name. Then it also gives the client some context of the files.


How do you manage images with duplicate file names?

I don't! :) Instead, I avoid having images with duplicate filenames by renaming them before import. That's it!

[Actually, I use hard links, but it amounts to the same thing.]

That's really my whole answer, in its essence. You're welcome to read on for more details on how I, personally, achieve that, if you like. If my answer gets confusing, though, just focus on the above concept -- there are lots of other ways to achieve the same basic concept.

Note: The rest of this answer is kind of UNIX-ish and geeky in some of its nomenclature. The concepts are general, though, and surely this sort of thing could be done elsewhere. If anyone has suggestions on how to improve the way I've written this answer, I'm happy to hear them. I'm also writing this when tired, and I tend to be verbose, so... hopefully this will all make sense, and if not, please let me know, and I'll do my best to clarify in an edit.

In particular, I have a script that I run called import_card, which asks for a name for the shoot/session/whatever, and then does the following:

  1. Make sure I'm in an appropriate directory for importing images into. (This could be done a number of ways, but the way I do it is just to make sure that there's already a directory matching the current year and month, as YYYY/MM.)

  2. Look for one or more memory card(s) that are currently attached to the computer.

  3. Scan the data on each card (looking at EXIF data), one-at-a-time, to figure out which camera the images were recorded from (by serial number), and what the most recent date was of an image within the card (if there are multiple dates, I go with the most recent). (Note: there could be multiple cameras on a single card; I mostly try not to run into that case, but it's handled well if I do.)

  4. Copy the data (exactly) from my card(s) into a folder like:


    Where cameraID is a short name (e.g. "30d" or "g9", or sometimes something longer to indicate a borrowed camera) that I've assigned to an individual camera (or multiple such IDs if the card was shot with multiple cameras) based on the serial number of the camera(s). (For cases where the EXIF data doesn't include a serial number, I have some other heuristics I use to guess, which mostly works well for the limited number of cameras I use, but could break down for some). This folder might have filenames within it like:


    (I primarily shoot Canon, but this could be done with other cameras, too, and my script handles a few different types of canon and at least one other brand of camera, as well.)

  5. Once that's done, do the renaming (really hard linking) using (and this is the key to this whole thing) the name of the DCIM subdirectories as part of the ID. So, a new directory gets created like YYYY/MM/YYYYMMDD-cameraID-the_name_I_entered (without .in) which takes the 123 in 123CANON and the 4567 in _MG_4567.CR2, combined also with a (different) short(er) prefix identifying the camera (usually one-letter for my own cameras, and several letters for cameras I've borrowed) -- again, based on the serial number of the camera used for each image (so if I've shot a card on multiple cameras, the individual files will get different prefixes, whether or not the numbering scheme is different between the cameras), creating files like (assuming a prefix of "e", which is my current main camera, but it could be anything):


  6. I then import the directory created in the previous step (i.e. not the one with ".in" in its name) as a new project into Aperture or Lightroom (I've used both at different times -- they each have their advantages). From there, the "Master filename" and "Version number" (Aperture terminology, I forget what Lightroom calls the same concepts) has the unique-to-my-entire-library string e123-4567 in it. When I then export images for whatever purpose, I include this in the name of the exported file, along with (sometimes) my name as a prefix (for images I'll be giving directly to others) and (frequently, especially for e.g. flickr uploads) some sort of descriptive title (matching the flickr title, so I can easily tie them together) of the image, and/or of the "version" of it, if I have different edits (the latter being something I store in the "version name" within Aperture).

Between all of the above, I get the following benefits:

  • I have an archive of the exact data from the card. If I ever want to, I could put that data back onto a card, and the camera would be able to understand it as though it had never been removed.

  • The images I import have a pretty-much-guaranteed unique number.

    (The caveat: If I ever roll past 999CANON for folder names, I'll have trouble -- and I am up to about 985CANON, but that's mostly because I used to share a card back and forth between a Canon 10D, which only put 100 images in each such folder, and a 30D, which puts basically 10,000, but took over numbering from where the 10D left off, and then the 10D would do silly things with that. I've been at 985 for a while, and don't expect to exceed 999 before having a new camera body, which I will be careful not to pollute the numbering on, and thus will start with, I think, 100CANON. If I ever do hit up against the 999 limit, though, I can just change the prefix for that camera, and all will be well.)

  • The unique number is relatively short, so my filenames aren't too huge, usually. (The directory (and therefore project) names are sometimes annoyingly long, alas, but I like having that info handy, so I deal with it.)

I don't know why Aperture and Lightroom and such don't allow putting data like this into the filename. Especially the part of taking the number from the folder name in the DCIM directory. Alas, they don't. So far, anyway. :) I know Lightroom has some rules for renaming things during import, and you could probably achieve an alternate version of this idea using that (based on date, most likely), but it didn't have any way to extract the DCIM folder ID, last I looked.

Anyway, I hope this is somehow helpful to folks. My script is currently written in a way that's highly customized to my own needs, but I could probably be convinced to clean it up and release it as an open-source thing, if there's enough demand. Or, if you're good with ruby, perl, python, or the like, you could write your own version.

Or you could bug Apple and Adobe to build something like this in to their products. :)


Not the answer you're looking for? Browse other questions tagged or ask your own question.