File_Utilities module

is_directory

procedure · 1 overloadSource

Whether path is a directory, as (is_directory, success). A link is followed. A path that cannot be examined (missing, no permission, or a NUL byte in it) gives (false, false), so success tells a file from nothing at all.

is_directory :: (path: string) -> (bool, success: bool)

Parameters

path: string

Returns

bool
success: bool
ExampleOpen in playground ↗
#import "Extensions/Environment";
#import "File";
base := environment_variable("TMPDIR");
if base == "" base = environment_variable("TEMP");
if base == "" base = "/tmp";
root := tprint("%/jai-doc-is-directory", base);
file := tprint("%/file", root);
defer {
    file_delete(file);
    delete_directory(root);
}

assert(make_directory_if_it_does_not_exist(root));
assert(write_entire_file(file, "x"));

directory, success := is_directory(root);
assert(directory && success);
directory, success = is_directory(file);
assert(!directory && success);
directory, success = is_directory(tprint("%/missing", root));
assert(!directory && !success);
assert(file_exists(file) && !file_exists(tprint("%/missing", root)));

See also