Can I skip sub directories with file.dirEntries() ?

Nicholas Wilson iamthewilsonator at hotmail.com
Wed Sep 27 10:05:34 UTC 2017


On Wednesday, 27 September 2017 at 09:00:55 UTC, Ky-Anh Huynh 
wrote:
> Hi,
>
> Can I have a `break` option when using `dirEntries()`  (similar 
> to `break` in a loop)? I want to study sub-directories but if 
> any sub-directory matches my criteria I don't to look further 
> into their subdirectories
>
> ```
>   <working-dir>
>      A/   -> matches criteria, stop here, go to next directory 
> (B)
>      B/   -> doesn't match criteria, will look at its 
> sub-directories (BX, BY,...)
>        BX
>        BY
> ```
>
> Thanks a lot

I'd just use dirEntries with SpanMode.shallow in combination with 
filter either in a loop or a recursive function like below.

void foo(string path = "path")
{
     foreach(e; 
dirEntries(path,SpanMode.shallow).filter!(myCritreia(paramters)))
     {
         if (e. isDir)
             foo(e.name); // recurse
         // do other stuff
     }
}

you will loop over all subdirs of "path" that satisfy 
`myCritreia`.


More information about the Digitalmars-d-learn mailing list