fn openPath(io: Io, path: []const u8) !Io.Dir io: Iopath: []const u8167
168
169
170
171
172
173
174
175
176
177 fn openPath(io: Io, path: []const u8) !Io.Dir {
if (path.len == 0) return error.NotDir;
var parts = std.mem.tokenizeScalar(u8, path, '/');
var parent = if (path[0] == '/') try Io.Dir.cwd().openDir(io, "/", .{}) else Io.Dir.cwd();
while (parts.next()) |part| {
const child = try parent.openDir(io, part, .{});
parent.close(io);
parent = child;
}
return parent;
}