Dz
Djazair
v1.0.5
🔍

Path Module

Import using: use path. Provides pure string manipulation of file paths (cross-platform).

Constants

  • path.sep - Platform path separator (/ on POSIX, \ on Windows).
  • path.delimiter - Path list delimiter (: on POSIX, ; on Windows).
use path
print(path.sep)  # / or \
print(path.delimiter)  # : or ;

Join & Resolve

  • path.join(...parts) - Join multiple path segments using platform separator.
  • path.resolve(p) - Resolve relative path to absolute.
  • path.normalize(p) - Normalize path (resolve ., .., duplicate separators).
  • path.relative(from, to) - Compute relative path from from to to.
use path
print(path.join("folder", "file.txt"))
# On Windows: folder\file.txt
# On POSIX:   folder/file.txt
let messy = "folder1/../folder2/./file.txt"
print(path.normalize(messy))  # folder2/file.txt

Decomposition

  • path.dirname(p) - Parent directory portion.
  • path.basename(p, suffix?) - Last component (file/directory name), optionally strip suffix.
  • path.extname(p) - File extension (including leading dot).
  • path.parse(p) - Parse into Map with keys: root, dir, base, name, ext.
  • path.format(obj) - Format path from Map with keys: root, dir, base, name, ext.
  • path.split(p) - Split into [dirname, basename].
  • path.splitext(p) - Split into [root_path, extension].
  • path.parts(p) - Decompose into array of component names.
use path
let p = "folder1/folder2/file.txt"
print(path.dirname(p))    # folder1/folder2
print(path.basename(p))   # file.txt
print(path.extname(p))    # .txt
let parsed = path.parse(p)
print(parsed["name"])     # file
print(parsed["ext"])      # .txt
let parts = path.parts(p)
print(str(parts))         # ["folder1", "folder2", "file.txt"]

Query & Security

  • path.isAbsolute(p) - Check if path is absolute.
  • path.isSafe(base, target) - Check target does not escape outside base.
use path
print(str(path.isAbsolute("/abs/path")))   # True on POSIX
print(str(path.isAbsolute("relative")))    # False
print(str(path.isSafe("/base", "/base/file")))  # True
print(str(path.isSafe("/base", "/other")))      # False
© 2026 Harizi Riyadh. Released under the MIT License.
Official Website for Djazair.