You should do a [url http://en.wikipedia.org/wiki/Recursion_%28computer_science%29]recursive method[/url] using those:
[url http://java.sun.com/j2se/1.5.0/docs/api/java/io/File.html#listRoots()]File.listRoots()[/url]
[url http://java.sun.com/j2se/1.5.0/docs/api/java/io/File.html#listFiles()]File.listFiles()[/url]
[url http://java.sun.com/j2se/1.5.0/docs/api/java/io/File.html#isDirectory()]File.isDirectory()[/url]
BTW this has nothing to do with generics.
Regards