Method in path · Path coil-stdlib

Path::normalize

pub fn normalize() -> Result<Path, IoError>
Import
use path::{Path};
Source: src/path.hy

Removes . components, resolves .. against the component before it, and collapses repeated separators.

Purely textual: symlinks are not followed (use io::fs::realpath for that), and a .. with nothing before it is dropped. An empty result is ..

Called on a Path value as value.normalize(…).

Returns#

Result<Path, IoError>

Examples#

use path::{Path};
use tests::assert;
assert!((Path::from("a/./b//../c").normalize() ?? Path::from("")).as_str() == "a/c");
assert!((Path::from("/../x").normalize() ?? Path::from("")).as_str() == "/x");

See also#

  • io::fs::realpath
  • Path: A file-system path, with helpers to take it apart and to use it.
  • Path::from: Creates a path from s as written.
  • Path::as_str: Returns the path as a string.
  • Path::join: Returns this path followed by other, with exactly one separator between them.
  • Path::dirname: Returns the path without its last component.
  • Path::basename: Returns the last component, ignoring trailing separators ("" for an empty path or /).
  • Path::extension: Returns the text after the last . of the last component, or "" when there is none.
↑ ↓ navigate ↵ open