Please modify the title of the thread to reflect your question:
is there a way to check to see if (1) there is a card in the SD socket (card detect) and (2) id the card has its write protect switch on?
(1)
The card detection requires an IO line which is default not connected, so I expect it is not supported in the library.
You have to look at the schematics of your SDcard and solder a wire to some fee pin and the GND or so. You might connect it to an interrupt pin of the arduino and write code to handle the insert and remove.
(2)
Don't know but I think the write will fail with a specific code if writeprotected or full.
It should be not to difficult to write a function that checks writeprotection. Try to create a dummy file on SD and delete it if succesfull. In pseudo code this would involve something like :
boolean SDReadProtected()
{
if createFile fails return true; // or a directory is also possible...
deletefile
return false;
}
Drawback is it takes some extra time but you need to call it only once...