Have you tried EnumerateFiles method of DirectoryInfo class?
As MSDN Says
The
EnumerateFiles
andGetFiles
methods differ as follows: When you
useEnumerateFiles
, you can start enumerating the collection of
FileInfo
objects before the whole collection is returned; when you
useGetFiles
, you must wait for the whole array ofFileInfo
objects to
be returned before you can access the array. Therefore, when you are
working with many files and directories,EnumerateFiles
can be more
efficient.