[Issue 8291] dirEntry cannot handle root directories + unhandled exception causes crash
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Fri Dec 21 21:31:52 PST 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8291
Vladimir Panteleev <thecybershadow at gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |thecybershadow at gmail.com
--- Comment #1 from Vladimir Panteleev <thecybershadow at gmail.com> 2012-12-21 21:31:50 PST ---
(In reply to comment #0)
> 1) Wrong root handling api/params.
> To stat a root directory, the "GetFileAttributes" API must be used instead of
> "FindFirstFile".
> To stat all files in a root dir, "C:\*" must be passed to FindFirstFile.
> In all other cases, a path with [back]slash removed can be passed to
> "FindFirstFile".
> I know this in crazy, if you don't believe me, read CAREFULLY the FindFirstFile
> docs.
> P.S.:
> This should make you see that the dirEntries method may have some problems...
The following program works as expected, and prints the files/directories in
the root of my C: drive:
import std.stdio;
import std.file;
void main()
{
writeln(dirEntries(`C:\`, SpanMode.shallow));
}
Can you clarify the problem?
> 2) Crash
> The result of FindFirstFile is "enforced" in _init private method and NOT
> CAUGHT in the caller public method dirEntry, and this crashes the client app.
> It would be better to throw a FileException in _init and catch+rethrow it in
> dirEntry.
So what is the exact problem? Isn't a FileException thrown in either case?
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list