Creates parent directories with default permissions as necessary to ensure
sub_path exists as a directory.
Returns success if the path already exists and is a directory.
This function may not be atomic. If it returns an error, the file system may have been modified.
Fails on an empty path with error.BadPathName as that is not a path that
can be created.
On Windows, sub_path should be encoded as WTF-8.
On WASI, sub_path should be encoded as valid UTF-8.
On other platforms, sub_path is an opaque sequence of bytes with no particular encoding.
Paths containing .. components are handled differently depending on the platform:
.. are resolved before the path is passed to NtCreateFile, meaning
a sub_path like "first/../second" will resolve to "second" and only a
./second directory will be created... are not resolved before the path is passed to mkdirat,
meaning a sub_path like "first/../second" will create both a ./first
and a ./second directory.See also:
createDirPathStatuspub fn createDirPath(dir: Dir, io: Io, sub_path: []const u8) CreateDirPathError!void
pub fn createDirPath(dir: Dir, io: Io, sub_path: []const u8) CreateDirPathError!void {
_ = try io.vtable.dirCreateDirPath(io.userdata, dir, sub_path, .default_dir);
}