Demonstrating the performance difference of a number of methods for File & Folder enumeration. I compare implementation performance, Collection type, and Framework / Core Version.

Includes Pre-built Tests

There are more enumerating functions than there are tests, so more tests can be written!

Includes the entire HouseofCat.Library I use for projects so you can go crazy! The code comes in standard 4.7.1 and NetCore 2.0.3 & NetStandard 2.0.1. The Library code includes sources/citations. I use two 3rd party File Enumerators that used to be pretty decent implementations using the WIN32API back in the day. The main projects are dependent on the Library and LibraryCore projects being built first. Library and LibraryCore are virtually identical. Queues in NetCore/NetStandard have a TryDequeue which I utilized. The reason why there are two full Library Projects identically maintained is for your convenience. The citations/sources are included in the source for code borrowed.


The binaries are hardcoded to 5 test iterations of what I considered to be the four fastest functions. It is hardcoded to finding files on the C:\ for files. In order to choose a different rootFolder/path, you will need to get the source from Github and modify it to your liking. In the future, I may add a UI/options etc.

Best Results
Get Latest (x64) NET Build Here ↙ Get Latest (x64) NETCORE Build Here ↙

File Enumeration Tutorials

Tutorials written to help explain some of the different File/Directory Enumerators used in this Benchmark as well as others.