Skip to content

@utilslib/core/getBasename


从文件路径中提取文件名,可选择去除扩展名。


getBasename

函数签名

typescript
function getBasename(path: string, ext?: string): string

描述

从文件路径中提取文件名,可选择去除扩展名。

参数

参数名类型可选默认值描述
pathstring--
extstring--

返回值

string

示例

typescript
```ts
basename('/path/to/file.txt') // => "file.txt"
basename('/path/to/file.txt', '.txt') // => "file"

::: details 点击查看源码
::: code-group
```js
/**
 * 从文件路径中提取文件名,可选择去除扩展名。
 *
 * @param {string} path - 包含文件名的路径。
 * @param {string} [ext] - 可选的扩展名,如果提供且文件名以该扩展名结尾,则会从结果中移除。
 * @returns {string} 提取出的文件名。
 * @example
 * \`\`\`ts
 * basename('/path/to/file.txt') // => "file.txt"
 * basename('/path/to/file.txt', '.txt') // => "file"
 * \`\`\`
 */
export function getBasename(path, ext) {
  if (!path || typeof path !== "string") return "";
  const filename =
    path
      .replace(/[\/\\]+$/, "")
      .split(/[\/\\]/)
      .pop() || "";
  return ext && filename.endsWith(ext)
    ? filename.slice(0, -ext.length)
    : filename;
}
ts
/**
 * 从文件路径中提取文件名,可选择去除扩展名。
 *
 * @param {string} path - 包含文件名的路径。
 * @param {string} [ext] - 可选的扩展名,如果提供且文件名以该扩展名结尾,则会从结果中移除。
 * @returns {string} 提取出的文件名。
 * @example
 * \`\`\`ts
 * basename('/path/to/file.txt') // => "file.txt"
 * basename('/path/to/file.txt', '.txt') // => "file"
 * \`\`\`
 */
export function getBasename(path: string, ext?: string): string {
  if (!path || typeof path !== "string") return "";
  const filename =
    path
      .replace(/[\/\\]+$/, "")
      .split(/[\/\\]/)
      .pop() || "";
  return ext && filename.endsWith(ext)
    ? filename.slice(0, -ext.length)
    : filename;
}

:::

如有错误,请提交issue :::