The interesting thing for me was to point out, which is the FASTEST way, and therefore i tried 3 techniques:
Overview
*~200 Ticks
Conclusion
Parallel Approch works best in this Case, Directory.EnumerateFiles
is much faster than Directory.GetFiles
(searched with pattern *.txt and Subdirectories inclued)
Code
A - GetFiles and ReadAllText
foreach (var file in Directory.GetFiles("C:\\Program Files (x86)", "*.txt", SearchOption.AllDirectories))
{
var a = File.ReadAllText(file);
}
B - EnumerateFiles and ReadAllText
foreach (var file in Directory.EnumerateFiles("C:\\Program Files (x86)", "*.txt", SearchOption.AllDirectories))
{
var a = File.ReadAllText(file);
}
C - Parallel Approach
var files = Directory.EnumerateFiles("C:\\Program Files (x86)", "*.txt", SearchOption.AllDirectories);
Parallel.ForEach(files,(current) =>
{
var a = File.ReadAllText(current);
});
FEEL FREE to add ideas, thoughts, ....