diff --git a/Dir.zig b/Dir.zig index 07b26dd0e3ce430e630a39f38e4c42f612570da7..02488cc236bb3b0668a095c4c25592816458e19a 100644 --- a/Dir.zig +++ b/Dir.zig @@ -94,3 +94,13 @@ pub fn makePath(self: Dir, sub_path: [:0]const u8) !void { component = it.next() orelse return; } } + +pub fn makeOpenPath(self: Dir, sub_path: [:0]const u8, flags: OpenDirFlags) !Dir { + return self.openDir(sub_path, flags) catch |err| switch (err) { + error.ENOENT => { + try self.makePath(sub_path); + return self.openDir(sub_path, flags); + }, + else => |e| return e, + }; +}