You have to enumerate through the folder in order to get all the files.
However, you can still do something to improve the performance. I suggest you have a look at those benchmark tests (Get1 method):
https://stackoverflow.com/a/17756559/3876750
It seems like the following method provides the best performance, according to the benchmark test:
private static int Get1(string myBaseDirectory) { DirectoryInfo dirInfo = new DirectoryInfo(myBaseDirectory); return dirInfo.EnumerateDirectories() .AsParallel() .SelectMany(di => di.EnumerateFiles("*.*", SearchOption.AllDirectories)) .Count(); }