On Monday, 17 March 2014 at 20:39:45 UTC, anonymous wrote:
On Monday, 17 March 2014 at 09:18:36 UTC, Spacen Jasset wrote:
While trying to use dirEntries range with foreach I encountered a seemingly unsurmountable problem. The problem is that an execption is thrown while calling .front() on the range that dirEntries returnes, which seems to mean it's impossible to use it with a for loop if you exepect any sort of 'access denied' or other file exception - which will be quite common. e.g. in c:\windows

Is there any way to fix the foreach loop version (a)


(a) Can't make this work
foreach (DirEntry e; entries) {

   }
std.file.FileException@std\file.d(2262): c:/windows\CSC\v2.0.6: Access is denied


(b)This works
   auto entries = dirEntries(path, spanMode);
   while (!entries.empty) {
       try {
           DirEntry e = entries.front();
           //...
           entries.popFront();
       } catch (FileException e) {
           writeln("Skipping something");
       }
   }

b doesn't work in the general case, either. dirEntries throws
immediately when the very first entry is not accessible.


I see. I raised a bug on this issue https://d.puremagic.com/issues/show_bug.cgi?id=12391 Perhaps there are some other libraries ideas that can be used.



Reply via email to