Windows looks for an 'index' file on the disk. If it can't find that, it will either see a disk as being empty or simply refuse to accept that it even exists (even though all other files on the disk might be perfectly OK).
Try Recuva first (because it's completely free):
http://www.piriform.com/recuva/features
If that doesn't work try the free trial version of the mighty IsoBuster. (If that program can't solve your problem, I very much doubt that anything can):
http://download.cnet.com/IsoBuster/3000-2248_4-10208087.html
It's a while since I needed to use IsoBuster (but it's certainly solved plenty of problems for me in the past), so I can't remember exactly what the limitations of the free version are. However I suspect that it will do everything that you want, without having to pay (US$39.95) for the full version.