Beginner
cli
Path operations
Many applications need to manipulate file paths in one way or another. The Deno standard library provides simple utilities for this.
First we will import the module from the Deno standard library
!--frsh-copybutton:1-->
import * as path from "https://deno.land/std@0.175.0/path/mod.ts";
Converting from a file url to a directory can be done simply by the `fromFileUrl` method from the appropriate implementation.
!--frsh-copybutton:2-->
const p1 = path.posix.fromFileUrl("file:///home/foo");
const p2 = path.win32.fromFileUrl("file:///home/foo");
console.log(`Path 1: ${p1} Path 2: ${p2}`);
We can also choose to not specify and automatically use whatever Deno is running on
!--frsh-copybutton:3-->
const p3 = path.fromFileUrl("file:///home/foo");
console.log(`Path on current OS: ${p3}`);
We can get the last part of a file path using the basename method
!--frsh-copybutton:4-->
const p = path.basename("./deno/is/awesome/mod.ts");
console.log(p); // mod.ts
We can get the directory of a file path using the dirname method
!--frsh-copybutton:5-->
const base = path.dirname("./deno/is/awesome/mod.ts");
console.log(base); // ./deno/is/awesome
We can get the extension of a file path using the extname method
!--frsh-copybutton:6-->
const ext = path.extname("./deno/is/awesome/mod.ts");
console.log(ext); // .ts
We can format a path using a FormatInputPathObject
!--frsh-copybutton:7-->
const formatPath = path.format({
root: "/",
dir: "/home/user/dir",
ext: ".html",
name: "index",
});
console.log(formatPath); // "/home/user/dir/index.html"
When we want to make our code cross-platform, we can use the join method. This joins any number of string by the OS-specific file seperator. On Mac OS this would be foo/bar. On windows, this would be foo\bar.
!--frsh-copybutton:8-->
const joinPath = path.join("foo", "bar");
console.log(joinPath);
We can get the current working directory using the built-in cwd method
!--frsh-copybutton:9-->
const current = Deno.cwd();
console.log(current);
Run this example locally using the Deno CLI:
deno run --allow-read https://examples.deno.land/path-operations.ts
Additional resources: