isDir won't throw FileException with dirEntries
Jonathan M Davis
jmdavisProg at gmx.com
Tue Aug 30 10:54:36 PDT 2011
On Tuesday, August 30, 2011 10:39 Nick Treleaven wrote:
> Hi,
> With the attached source file on Windows, dmd 2.054, I'm not getting an
> exception when the path doesn't exist. If I uncomment the foreach line,
> the exception is thrown. Should I file this in bugzilla?
So, what exactly is the problem? Is the issue that isDir isn't throwing or
that dirEntries isn't throwing? isDir should definitely throw if the path
doesn't exist, but I'm not sure that dirEntries will. It'll throw once you try
and iterate over it, but dirEntries returns a range of DirEntrys which is
lazy. So, there's a decent chance that it doesn't actually do anything with
the path that you gave it until you try and iterate it. I'd have to look at
the implementation though to see whether that's the case. Regardless, if the
issue is that dirEntries doesn't throw, and that you only get an exception
when you actually iterate over the return value from dirEntries, then I don't
think that that's really a bug. Assuming that it doesn't currently throw on a
bad path until you iterate, it may or may not be desirable to make it so that
dirEntries does an additional check to verify that the path is valid, but
since it would throw once you started iterating, I don't think that it's
really a problem - especially if checking whether the path is valid before
iteration means making an additional system call.
- Jonathan M Davis
More information about the Digitalmars-d-learn
mailing list