Obtendo arquivos recursivamente: ignora arquivos / diretórios que não podem ser lidos?

Eu quero obter todos os arquivos em um diretório em uma matriz (incluindo os arquivos em subpastas)

string[] filePaths = Directory.GetFiles(@"c:\",SearchOption.AllDirectories);     

O problema com isto é: Se uma exceção é lançada, o comando inteiro para. Existe uma maneira melhor de fazer isso para que, se uma pasta não puder ser acessada, ela simplesmente passe por cima dela?

questionAnswers(3)

yourAnswerToTheQuestion