iPhoto external file referencing issue resolved
I recently started maintaining my digital photo library outside of iPhoto (checking off the copy photos into iPhoto Library option in the preferences) because it was annoying how in order to find any photo you had to launch iPhoto. Subsequently, I had moved the location of my external archive, and just noticed that although iPhoto still displayed the thumbnails of these photos (in cache), it could no longer find the originals! I finally figured out how to resolve this without resorting to a fresh library…
Any files that are stored outside of iPhoto’s library folder are actually aliased into the library by means of standard Finder aliases (not unix symlinks). So suppose you have a folder imported in 2008. Open your /Users/<you>/Pictures/iPhoto Library/ directory by right-clicking and choose Show Package Contents. The aliases will be found in the Originals folder under the year they were imported. My problem was that these alias files no longer linked to their originals. Of course they should always remain linked, as the primary benefit of Finder aliases is that they are fully portable. You can move either the alias or the original files anywhere across drives and the alias should always point to the original. This was no longer the case.
To cut to the chase, I got info on one of the aliases, noticed that it still pointed to the file in the directory it had been in when I first imported it. So I moved this folder back to the original directory and voila, the alias worked again. The trick was to get the alias to recognize when I moved the folder back to where I wanted it. It turns out this is easy. You just need to update the alias to every image that is broken. In the Finder I chose Show Inspector (option-open-I) and just single-clicked on each broken alias. In List-view in a Finder window you will noticed the Last Modified Date should be updated to Today. It is important that you use Show Inspector because this live updates each file that you click on. So, you can just select a single alias and hold down your down arrow key to scroll through all of the aliases in your iPhoto folder. This will update them all.
When you are finished, just move the folder to wherever you actually want it. Relaunch iPhoto and you’re done.