一个适用于鸿蒙 Next 的 TypeScript 实现的路径处理模块,基于 Node.js 的 path 模块设计,主要用于处理文件路径和目录路径。
- path.basename(path[, ext])
- path.dirname(path)
- path.extname(path)
- path.format(pathObject)
- path.isAbsolute(path)
- path.join([...paths])
- path.normalize(path)
- path.parse(path)
- path.relative(from, to)
- path.resolve([...paths])
ohpm i @mysoft/path
环境配置等更多内容,请参考如何安装 ohpm 包
在你的 TypeScript 文件中,使用以下代码引入模块:
import { path } from "@mysoft/path";
参数:
path
:需要处理的路径。suffix
(可选):文件扩展名,用于从结果中移除。
返回值: 路径的最后一部分。
示例:
path.basename("/foo/bar/baz/asdf/quux.html"); // => "quux.html"
path.basename("/foo/bar/baz/asdf/quux.html", ".html"); // => "quux"
参数:
path
:需要处理的路径。
返回值: 路径的目录部分。
示例:
path.dirname("/foo/bar/baz/asdf/quux.html"); // => "/foo/bar/baz/asdf"
参数:
path
:需要处理的路径。
返回值: 路径的扩展名。
示例:
path.extname("foo/bar/baz/asdf/quux.html"); // => ".html"
4. path.format(pathObject: FormatInputPathObject): string
参数:
pathObject
:包含路径组件的对象,字段包括 root、dir、base、ext 和 name。
返回值: 格式化后的路径字符串。
示例:
const pathObject: FormatInputPathObject = {
root: "/",
dir: "/foo/bar/baz",
base: "quux.html",
ext: ".html",
name: "quux"
};
path.format(pathObject); // => "/foo/bar/baz/quux.html"
参数:
path
:需要检查的路径。
返回值: 如果路径是绝对路径,则返回 true,否则返回 false。
示例:
path.isAbsolute("/foo/bar"); // => true
path.isAbsolute("foo/bar"); // => false
参数:
...paths
:需要连接的路径片段。
返回值: 连接并规范化后的路径。
示例:
path.join("/foo", "bar", "baz/asdf", "quux", ".."); // => "/foo/bar/baz/asdf"
path.join("foo", "bar", "baz/asdf", "quux", ".."); // => "foo/bar/baz/asdf"
参数:
path
:需要规范化的路径。
返回值: 规范化后的路径,处理 . 和 ..。
示例:
path.normalize("/foo/bar//baz/asdf/quux/.."); // => "/foo/bar/baz/asdf"
path.normalize("/foo/./bar/"); // => "/foo/bar"
path.normalize("foo/bar"); // => "foo/bar"
8. path.parse(path: string): ParsedPath
参数:
path
:需要解析的路径。
返回值: 包含路径组件的对象,字段包括 root、dir、base、ext 和 name。
示例:
path.parse("/foo/bar/baz/asdf/quux.html");
// => { root: "/", dir: "/foo/bar/baz/asdf", base: "quux.html", ext: ".html", name: "quux" }
参数:
from
:起始路径。to
:目标路径。
返回值: 从 from 到 to 的相对路径。
示例:
path.relative("/data/orandea/test/aaa", "/data/orandea/impl/bbb"); // => "../../impl/bbb"
path.relative("/data/orandea/test/aaa", "/data/orandea/test/aaa"); // => ""
参数:
...paths
:需要解析的路径片段。
返回值: 解析后的绝对路径。
示例:
path.resolve("/foo/bar", "/tmp/file/"); // => "/tmp/file"
path.resolve("/foo/bar", "/tmp/file", "a/"); // => "/tmp/file/a"
path.resolve("wwwroot", "static_files/png/", "../gif/image.gif"); // => "wwwroot/static_files/gif/image.gif"
interface FormatInputPathObject {
root?: string; // 根路径(例如:`/`)
dir?: string; // 目录部分(例如:`/foo/bar`)
base?: string; // 基础文件名(例如:`file.txt`)
ext?: string; // 文件扩展名(例如:`.txt`)
name?: string; // 文件名(不包含扩展名,例如:`file`)
}
interface ParsedPath {
root: string; // 根路径(例如:`/`)
dir: string; // 目录部分(例如:`/foo/bar`)
base: string; // 基础文件名(例如:`file.txt`)
ext: string; // 文件扩展名(例如:`.txt`)
name: string; // 文件名(不包含扩展名,例如:`file`)
}
使用过程中发现任何问题都可以提 Issue; 当然,我们也非常欢迎发 PR 。
本项目基于 Apache License 2.0 ,在拷贝和借鉴代码时,请务必注明出处。