::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:
class Io.Path.Public public Gilda: Perform file system operations on file paths.
import Io.Directory.Public,
Stack(string)
:
:...............................................................................
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:
method ABSOLUTE.PATH pure: Convert a path to a full path name.
change Path string : In - OS path name (tame, either slash).
:Out - A path name beginning from the root.
: Windows - backslash, lowercase;
: Unix - forward slashes; literal case.
:
:...............................................................................
:
method FORM.PATH.SLASH pure: lowercase; no trailing slash.
change Path string :In - Os path (Exact case, any slash).
:Out - lower or exact case; no trailing slash unless a
: disk (<drive>:/), root(/), or net root (//).
entry Forward = 0 Bit :1 - Separate by forward slash. 0 - Use Path.Slash.
:
:...............................................................................
:
function IS.PATH.SAME: Determine if 2 relative os paths are the same.
entry Left string, &Os path names. The order does not matter.
Right string
exit Same Bit
:
:...............................................................................
:
function IS.DIRECTORY: Determine if a tame OS path is a directory.
entry Path string :O.S. relative path (no wildcards, Os slashes).
exit Directory Bit :0 if nonexistant or a file; 1 if a directory.
:
:...............................................................................
:
function IS.SUBDIRECTORY: Determine if a relative os path is a subdirectory.
entry Path string, &A path that may be a subdirectory of Super.
Super string :A path that may be above the Path.
:Paths may have either slash and an optional trailing slash.
exit Subdirectory Bit :1 if Path is a subdirectory of Super.
:Equal paths match as well, even if files.
:
:...............................................................................
:
method RELATIVE.PATH pure: Remove leading dots from a relative OS path.
change Path string :In - path; out tame relative path.
:
:...............................................................................
:
method TRIM.UP.DIRECTORY: Remove dot components.
change Path string : In - Directory to check (os path, any slashes).
:Out - Directory sans dots (froward slashes).
:
:...............................................................................
:
function TAIL.COMPONENT: Get the last component in a path.
entry Path string :Os path (could be any .../ <tail> [/]).
exit Tail string :Tail component (No trailing slash). Null if none.
:
:...............................................................................
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:
method SET.PERMISSION: Set flagged permissions (others are left as is).
entry Path string :File path (tame, os).
exit Status byte :0 - Okay; 1 - Can't set; else unknown.
entry Read = 0 Bit, &1 - Set; 0 - Leave unchanged.
Write = 0 Bit, &
Exec = 0 Bit
:
:...............................................................................
:
method CLEAR.PERMISSION: Clear flagged permissions (others are left as is).
entry Path string :File path (tame, os).
exit Status byte :0 - Okay; 1 - Can't set; else unknown.
entry Read = 0 Bit, &1 - Clear; 0 - Leave unchanged.
Write = 0 Bit, &
Exec = 0 Bit
:
:...............................................................................
:
method RESET.PERMISSION: Reset file permissions changed by Set.Permission.
entry Path string :Same path used on Set.Permission call.
exit Status byte :0 if okay. bit???
:
:...............................................................................
:
function PATH.DIRECTORY: Get the directory portion of a path.
entry Path string :Os path (could be any .../ <tail> [/]).
exit Directory string :Path with the last component removed;
:Trailing slash; "./" if none.
:
:...............................................................................
end