This is a duplicate of many other similar questions. If you want to get extended file info, use the XxxInfo classes, eg DirectoryInfo, FileInfo instead of the Directory and File classes.
Additionally, all GetXXX or EnumerateXXX methods have overloads with the SearchOption parameter which allows you to return all files,not just the files of the top directory.
For your specific question, to get info on all files below a directory using e.g. GetFiles:
var di=new DirectoryInfo(somePath);
var allFiles=di.GetFiles("*",SearchOption.AllDirectories);
foreach(var file in allFiles)
{
Console.WriteLine("{0} {1}",file.Name,file.Length);
}
The difference between GetFiles and EnumerateFiles is that GetFiles returns only after it retrieves all files below a directory, which can take a long time. EnumerateFiles returns an iterator so you can use it in a foreach statement to process each file at a time and stop the iteration if you like by breaking out of the loop.