After playing around with various software, I finally bit the bullet and used chkdsk/f on my SDHC card. To my relief, it actually repaired the file and left the whole thing intact! Note that was Windows 7 chkdsk; I'm not sure that XP chkdsk would have worked so well.