I have a folder with far too many files in, and I want to go through each file one by one. The problem is that Directory.GetFiles returns a completed array, and this takes too long.
I would rather have an object I would point to a folder, then call a function that returns me the next file in the folder. Does .NET have a class like this please?
(I'd prefer to avoid win32 interops, as I plan to use this on Mono as well.)
Many thanks.
You can't do this in .NET 3.5, but you can in .NET 4.0, as per this blog post:
DirectoryInfo directory = new DirectoryInfo(@"\\share\symbols");
IEnumerable<FileInfo> files = directory.EnumerateFiles();
foreach (var file in files) {
Console.WriteLine("Name={0}, Length={1}", file.Name, file.Length);
}
(Likewise there's a static Directory.EnumerateFiles
method.)
I don't know whether that API has been ported to Mono yet.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With