下面取得所有目录的。取得所有文件的你改一下就可以了。
public static String[] GetDirectorys(String DirPath,String pattern)
{
ArrayList al=new ArrayList();
foreach (string dir in Directory.GetDirectories(DirPath,pattern))
al.Add(dir);

for (int i=0;i<al.Count;i++)
{
foreach(string dir in Directory.GetDirectories(al[i].ToString(),pattern))
al.Add(dir);
}

String[] ret=new String[al.Count];
for (int i=0;i<al.Count;i++)
{
ret[i]=al[i].ToString();
}
return ret;
}