I have a Canon 7D. Suddenly my camera says "Card cannot be accessed. Reinsert/change the card or format card with camera". This is a card I have been using for about 6 months. How can I retrieve the photos on the card? This is the second time this has happened with my 7D. What am I doing wrong?
It is unlikely that you are doing anything wrong. If it is the same card as before, it is likely your card may be faulty. If it is a different card, it is likely your 7D may be faulty. If you are able to access the card from a card reader on your PC, then the card reader in the 7D may be faulty and if you can not, then it is likely the card has become corrupt and you will need to try using a file recovery tool such as the ones described in the answer that Philip Kendall linked to.
Same thing happened with my 5D MK II. Most of the times, the problem is with the card. i.e., You might have browsed your card in some random PC or Mac (which might have virus).
What you need to do is, After you copy all the photos from the card to computer, please make sure that you format the memory card from the camera itself before you start shooting again. So that, this won't happen again.
To recover the pictures, I always follow a simple method. Mine is Windows 7 PC. So, I simply insert the memory card in my PC, and after the external drive opens up, I'll search for
*.* in the search bar. So that it would show all the files that were written in the memory card, irrespective of the nature of the file. (careful, do not select the affected files) Copy only the pictures you want to recover and paste them in a different location.
[Unlike other methods, like photo recovery software, this method is not guaranteed. Yet, you could give it a try. Most of the times, it might work]