diff --git a/basis/io/files/info/info-docs.factor b/basis/io/files/info/info-docs.factor index 98d05bab6f..6c608e71d8 100644 --- a/basis/io/files/info/info-docs.factor +++ b/basis/io/files/info/info-docs.factor @@ -16,6 +16,14 @@ HELP: directory? { $values { "file-info" file-info } { "?" "a boolean" } } { $description "Tests if " { $snippet "file-info" } " is a directory." } ; +HELP: file? +{ $values { "file-info" file-info } { "?" "a boolean" } } +{ $description "Tests if " { $snippet "file-info" } " is a file." } ; + +HELP: symlink? +{ $values { "file-info" file-info } { "?" "a boolean" } } +{ $description "Tests if " { $snippet "file-info" } " is a symlink." } ; + HELP: file-systems { $values { "array" array } } { $description "Returns an array of " { $link file-system-info } " objects returned by iterating the mount points and calling " { $link file-system-info } " on each." } ; @@ -59,6 +67,8 @@ ARTICLE: "io.files.info" "File system meta-data" link-info exists? directory? + file? + symlink? } "File types:" { $subsections "file-types" } diff --git a/basis/io/files/info/info.factor b/basis/io/files/info/info.factor index 38e807b02a..23a271ba61 100644 --- a/basis/io/files/info/info.factor +++ b/basis/io/files/info/info.factor @@ -13,6 +13,8 @@ HOOK: file-info os ( path -- info ) HOOK: link-info os ( path -- info ) : directory? ( file-info -- ? ) type>> +directory+ = ; +: file? ( file-info -- ? ) type>> +regular-file+ = ; +: symlink? ( file-info -- ? ) type>> +symbolic-link+ = ; : sparse-file? ( file-info -- ? ) [ size-on-disk>> ] [ size>> ] bi < ;