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