This is of no use to PC users - sorry!
If you only want to have new images transferred from a card reader to your hard drive and you don't want to keep copies on the hard drive (at least until you empty the card itself) this script will help.
It transfers all images that have not been transferred before but will not transfer those that have been, but are no longer on your hard drive. After transferring the images it will confirm the number of images on the card, the number copied and give you the option of reviewing a list of all the images transferred. It also opens a Finder window and selects the last file downloaded from the card - making it easy to find the new images.
Before using the script two terminal commands need to be run
1. Without the card reader plugged in run this script
ioreg -Src IOUSBDevice | grep '^\+' > ~/ioreg
=
2. Plug in the card reader and then run this script
ioreg -Src IOUSBDevice | grep '^\+' | diff ~/ioreg - | tail -1 | sed 's/^> \+-o \(.*\)@.*/\1/' | pbcopy && pbpaste
=
The terminal widow will show the name of the card reader and it will also be on the clipboard (you can delete the file 'ioreg' that is in your root folder.)
Open the AppleScript in the Script Editor and edit the following lines of code (at the top of the script)
-- Script to synchronise a camera's memory card to a folder
-- Set the destination folder that is to contain the copies of images
property destination_folder : ((path to home folder) as string) & "Pictures:Camera:"
-- Set the name of the device reader
property deviceName : "Mass Storage Device"
-- Set the path to the images on the card
property cardImages : "EOS_DIGITAL:DCIM:100CANON:"
Select the string 'Mass Storage Device' and replace with the contents of the clipboard.
Replace the string 'EOS_DIGITAL:DCIM:100CANON:' with the path to the images on your memory card (that is the name of the 'disk' and all folders up to the images).
Replace the string 'Pictures:Camera:' with the path to where you want your images transferring to.
Save the modified script as an application.
Open the 'Image Capture' application and in the preferences change the 'When a camera is connected, open:' to 'Process camera images' or whatever you named the application to.
Plug in a card and it will copy all the images across on the first run, images will be filed in folders by date order (yyyy m dd) e.g.
2010 3 18
2010 3 22
On subsequent connections it will only copy new images.
I've used this script for some time now without any problems - but use it at your own risk.
NB
It will create two text files in your 'Preferences' folder:
Camera card contents - the list of images transferred across
Camera card data - the last image to be transferred