File Content and Directory Search using Directory.GetFiles and PLINQ
Array of File Names
Starting .NET 4, you can use PLINQ queries to parallelize operations on file directories. The following code snippet shows how you can write a query by using the GetFiles method to populate an array of file names in a directory and all subdirectories. This method does not return until the entire array is populated, and therefore it can introduce latency at the beginning of the operation. However, after the array is populated, PLINQ can be used to search inside all the files with the specific extension located in a particular directory for a specific word very quickly. For measuring the performance, you can create a folder called CLOBS and create 8 large text files (1GB each).
After running the project, the CPU usage goes up as it is shown in the following figure:
Finding all matches in 8 large text files (1GB each) takes 407.03 seconds as it is shown in the output window: