FindInFiles, C# static function


/ Published in: C#
Save to your folder(s)

This function provides C# with functionality similar to the apparently deprecated my.Computer.FileSystem.FindInFiles under the Microsoft.VisualBasic namespace.

Example usage:
IEnumerable oemFiles = FindInFiles(
Environment.GetEnvironmentVariable("SystemRoot"),
"VID_08b1",
false,
System.IO.SearchOption.AllDirectories,
"OEM*.INF"
);

There are two implementations in Source: [1] foreach and [2] LINQ-uified. The foreach version has nested foreach loops: one for the fileWildcards and one to search the contents of the files. There's an if statement that prevents duplicates. The LINQ-uified version is also nested - it has nested from clauses.

The LINQ-uified version is definitely more concise. It's harder to debug - can't really be stepped-through. This seems to be the classic trade-off between the imperative foreach approach and the functional LINQ approach.

Source also contains LinqPad syntax. LinqPad can be downloaded at http://www.linqpad.net/. It'll translate from LINQ to Lambda but I think Lambda is harder to read.

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.