Sì, ma non puoi usare GetFiles direttamente, devi scriverti il codice di ricerca ricorsiva a mano, piazzando i dovuti Try ... Catch per ignorare una determinata cartella se non è accessibile. Concettualmente non è complicato, basta scrivere una funzione che, usando System.IO.DirectoryInfo, enumeri i file e le directory contenute in essa; i file li conta, e sulle directory richiama ricorsivamente sé stessa e somma il valore restituito al totale.
No.- Posso far in modo di ricevere il numero di file contenuti nella cartella anche se non ne ho accesso? (Sembra fantascienza quindi l'escluderei)