Lo puoi fare con una funzione ricorsiva che attraversi tutto un ramo del filesystem (o tutto il disco). Mi sembra che esistano diversi thread in cui si e' parlato di questi algoritmi ... dovresti fare una ricerca nel forum ...
Pero', una funzionalita' simile non ha nulla di magico ... si tratta di controllare cartella per cartella e file per file, ed e' un lavoro abbastanza pesante per il sistema ...