On Friday, 30 November 2012 at 01:57:21 UTC, Dan wrote:
That will do the filtering correctly - but what I was hoping was to actually prune at the directory level and not drill down to the files in of an unwanted directory (e.g. .git). The problem with this and what I'm trying to overcome is accessing lots of files and directories recursively all of which I want to skip. Much like there is a *followSymlink* it would be nice if a predicate were accepted to *followDirectory* in general or some way to cause that.

what about the following?

import std.algorithm, std.array, std.regex;
import std.stdio, std.file;
void main()
{
  auto exclude = regex(r"\.git", "g");
  dirEntries("/path/GIT", SpanMode.breadth)
    .filter!(a => match(a.name, exclude).empty)
    .writeln();
}

I think if you go breadth first, you can filter out the unwanted directories before it delves into them

Reply via email to