Directory recursive walking
    dog2002 
    742617000027 at aaathats3as.com
       
    Thu Jan 14 15:46:45 UTC 2021
    
    
  
I need to make some operations with all the files in a directory 
and subdirectories. Currently, I do it like this:
import std;
void DirIteration(string path) {
     try {
         foreach(entry; dirEntries(path, SpanMode.shallow, false)) 
{ //SpanMode.shallow allows skip directories if any error happens
             if (entry.isFile && !entry.isSymlink)
                 writeln(entry); //Or something instead of this
             if (entry.isDir)
                 DirIteration(entry);
         }
     }
     catch (Throwable) {}
}
void main()
{
     DirIteration("C:\\Users\\angrypuppy\\MyDir");
}
But this method consumes a huge amount of memory (up to 4 GB and 
more). Is there a more appropriate way to walk directories 
recursively that does not consume a lot of memory?
    
    
More information about the Digitalmars-d-learn
mailing list