throw an Exception if source directory cannot be opened

Seems to be regardless of the @-silence operator, the ERROR gets through.