std.fs: split Dir into IterableDir
Also adds safety check for attempting to iterate directory not opened with `iterate = true`.
This commit is contained in:
@@ -181,14 +181,14 @@ pub fn main() !void {
|
||||
try dir_stack.append(target_include_dir);
|
||||
|
||||
while (dir_stack.popOrNull()) |full_dir_name| {
|
||||
var dir = std.fs.cwd().openDir(full_dir_name, .{ .iterate = true }) catch |err| switch (err) {
|
||||
var iterable_dir = std.fs.cwd().openIterableDir(full_dir_name, .{}) catch |err| switch (err) {
|
||||
error.FileNotFound => continue :search,
|
||||
error.AccessDenied => continue :search,
|
||||
else => return err,
|
||||
};
|
||||
defer dir.close();
|
||||
defer iterable_dir.close();
|
||||
|
||||
var dir_it = dir.iterate();
|
||||
var dir_it = iterable_dir.iterate();
|
||||
|
||||
while (try dir_it.next()) |entry| {
|
||||
const full_path = try std.fs.path.join(arena, &[_][]const u8{ full_dir_name, entry.name });
|
||||
|
||||
Reference in New Issue
Block a user