8000 GitHub - zourw/ohos-path: 一个适用于鸿蒙 Next 的 TypeScript 实现的路径处理模块,基于 Node.js 的 path 模块设计,主要用于处理文件路径和目录路径。
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

一个适用于鸿蒙 Next 的 TypeScript 实现的路径处理模块,基于 Node.js 的 path 模块设计,主要用于处理文件路径和目录路径。

License

Notifications You must be signed in to change notification settings

zourw/ohos-path

Repository files navigation

path

一个适用于鸿蒙 Next 的 TypeScript 实现的路径处理模块,基于 Node.js 的 path 模块设计,主要用于处理文件路径和目录路径。

API 目录

  1. path.basename(path[, ext])
  2. path.dirname(path)
  3. path.extname(path)
  4. path.format(pathObject)
  5. path.isAbsolute(path)
  6. path.join([...paths])
  7. path.normalize(path)
  8. path.parse(path)
  9. path.relative(from, to)
  10. path.resolve([...paths])

安装

ohpm i @mysoft/path

环境配置等更多内容,请参考如何安装 ohpm 包

使用方法

1. 引入模块

在你的 TypeScript 文件中,使用以下代码引入模块:

import { path } from "@mysoft/path";

2. 常见方法及参数说明

1. path.basename(path: string, suffix?: string): string

参数:

  • path:需要处理的路径。
  • suffix(可选):文件扩展名,用于从结果中移除。

返回值: 路径的最后一部分。

示例:

path.basename("/foo/bar/baz/asdf/quux.html"); // => "quux.html"
path.basename("/foo/bar/baz/asdf/quux.html", ".html"); // => "quux"

2. path.dirname(path: string): string

参数:

  • path:需要处理的路径。

返回值: 路径的目录部分。

示例:

path.dirname("/foo/bar/baz/asdf/quux.html"); // => "/foo/bar/baz/asdf"

3. path.extname(path: string): string

参数:

  • 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"

5. path.isAbsolute(path: string): boolean

参数:

  • path:需要检查的路径。

返回值: 如果路径是绝对路径,则返回 true,否则返回 false。

示例:

path.isAbsolute("/foo/bar"); // => true
path.isAbsolute("foo/bar"); // => false

6. path.join(...paths: string[]): string

参数:

  • ...paths:需要连接的路径片段。

返回值: 连接并规范化后的路径。

示例:

path.join("/foo", "bar", "baz/asdf", "quux", ".."); // => "/foo/bar/baz/asdf"
path.join("foo", "bar", "baz/asdf", "quux", ".."); // => "foo/bar/baz/asdf"

7. path.normalize(path: string): string

参数:

  • 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" }

9. path.relative(from: string, to: string): string

参数:

  • 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"); // => ""

10. path.resolve(...paths: string[]): string

参数:

  • ...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"

接口定义

FormatInputPathObject

interface FormatInputPathObject {
    root?: string;  // 根路径(例如:`/`)
    dir?: string;   // 目录部分(例如:`/foo/bar`)
    base?: string;  // 基础文件名(例如:`file.txt`)
    ext?: string;   // 文件扩展名(例如:`.txt`)
    name?: string;  // 文件名(不包含扩展名,例如:`file`)
}

ParsedPath

interface ParsedPath {
    root: string; // 根路径(例如:`/`)
    dir: string;  // 目录部分(例如:`/foo/bar`)
    base: string; // 基础文件名(例如:`file.txt`)
    ext: string;  // 文件扩展名(例如:`.txt`)
    name: string; // 文件名(不包含扩展名,例如:`file`)
}

沟通与交流

使用过程中发现任何问题都可以提 Issue; 当然,我们也非常欢迎发 PR

开源协议

本项目基于 Apache License 2.0 ,在拷贝和借鉴代码时,请务必注明出处。

About

一个适用于鸿蒙 Next 的 TypeScript 实现的路径处理模块,基于 Node.js 的 path 模块设计,主要用于处理文件路径和目录路径。

Resources

License

Stars

Watchers

Forks

Packages

No packages published
0