digitalmars.D.learn - iteration over directories is unsafe
It is not possible to do a simple iteration over directories in
safe mode.
Really? I have to resort to unsafe??
//----
module test;
safe: // nope. no can do.
import std;
void main()
{
auto dFiles = dirEntries("", "*.{d,di}", SpanMode.depth);
foreach(d; dFiles)
writeln(d.name);
}
//----
Feb 05 2022
On Saturday, 5 February 2022 at 23:26:21 UTC, forkit wrote:
It is not possible to do a simple iteration over directories in
safe mode.
Really? I have to resort to unsafe??
//----
module test;
safe: // nope. no can do.
import std;
void main()
{
auto dFiles = dirEntries("", "*.{d,di}", SpanMode.depth);
foreach(d; dFiles)
writeln(d.name);
}
//----
Well it can't be "truly" safe since it requires a call to the
system to retrieve the directory entries.
While yeah, from common sense it's most likely safe from the
perspective of a user, then it's not true safety as there are no
safety guarantees as it's an external call.
I would argue that D should move towards marking certain system
functions as trusted.
Feb 07 2022








bauss <jj_1337 live.dk>