On Sunday, 9 April 2023 at 03:39:52 UTC, Steven Schveighoffer wrote:
On 4/8/23 9:38 PM, ikelaiah wrote:
// Get files in specified inputPath variable with a specific extension     auto rmdFiles = file.dirEntries(inputPath, file.SpanMode.shallow)
         .filter!(f => f.isFile)
         .filter!(f => f.name.endsWith(fileEndsWith));

    // LINE 72 -- WARNING -- If we count the range here, later it will become 0 in line 82     writeln(programName ~ ": number of files found " ~ to!string(rmdFiles.walkLength));

dirEntries returns an *input range*, not a *forward range*. This means that once it's iterated, it's done.

If you want to iterate it twice, you'll have to construct it twice.

-Steve

Steve,

You're absolutely right. I did not read the manual correctly.

It is clearly written [here](https://dlang.org/library/std/file/dir_entries.html) that `dirEntry` is an `input range`.

I will modify the code to construct it twice.
Many thanks!

-ikelaiah

Reply via email to