路径操作
许多应用程序需要以某种方式操作文件路径。Deno 标准库提供了简单的实用程序来完成此操作。
首先,我们将从 Deno 标准库导入模块
import * as path from "jsr:@std/path";
import * as posix from "jsr:@std/path/posix";
import * as windows from "jsr:@std/path/windows";
从文件 URL 转换为目录可以通过适当实现中的 `fromFileUrl` 方法轻松完成。
const p1 = posix.fromFileUrl("file:///home/foo");
const p2 = windows.fromFileUrl("file:///home/foo");
console.log(`Path 1: ${p1} Path 2: ${p2}`);
我们也可以选择不指定平台,并自动使用 Deno 所运行的任何平台。
const p3 = path.fromFileUrl("file:///home/foo");
console.log(`Path on current OS: ${p3}`);
我们可以使用 basename 方法获取文件路径的最后一部分
const p = path.basename("./deno/is/awesome/mod.ts");
console.log(p); // mod.ts
我们可以使用 dirname 方法获取文件路径的目录
const base = path.dirname("./deno/is/awesome/mod.ts");
console.log(base); // ./deno/is/awesome
我们可以使用 extname 方法获取文件路径的扩展名
const ext = path.extname("./deno/is/awesome/mod.ts");
console.log(ext); // .ts
我们可以使用 FormatInputPathObject 格式化路径
const formatPath = path.format({
root: "/",
dir: "/home/user/dir",
ext: ".html",
name: "index",
});
console.log(formatPath); // "/home/user/dir/index.html"
当我们想要使代码跨平台时,可以使用 join 方法。这会使用特定于操作系统的文件分隔符连接任何数量的字符串。在 Mac OS 上,这将是 foo/bar。在 Windows 上,这将是 foo\bar。
const joinPath = path.join("foo", "bar");
console.log(joinPath);
我们可以使用内置的 cwd 方法获取当前工作目录
const current = Deno.cwd();
console.log(current);
使用 Deno CLI 在本地运行 此示例
deno run --allow-read https://docs.deno.org.cn/examples/path-operations.ts