鸿蒙Next如何获取路径中的文件名
在鸿蒙Next开发中,如何从文件路径中提取文件名?例如给定路径"/storage/emulated/0/Download/test.txt",需要获取最后的"test.txt"部分,是否有现成的API或方法可以实现?求具体代码示例。
2 回复
鸿蒙Next里获取文件名?简单!
用 ohos.file.fs 里的 getName() 方法,路径一塞,文件名就蹦出来了。
代码示例:
import fs from '@ohos.file.fs';
let file = fs.openSync("路径/文件.txt");
let fileName = file.getName(); // "文件.txt"到手!
别让路径溜了,抓住文件名就是现在! 😄
更多关于鸿蒙Next如何获取路径中的文件名的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在鸿蒙Next(HarmonyOS NEXT)中,可以通过以下方式获取文件路径中的文件名:
方法一:使用 ohos.file.fs 文件系统 API
import fs from '@ohos.file.fs';
let filePath: string = "/data/storage/el2/base/files/example.txt";
// 使用 fs.basename() 获取文件名
let fileName: string = fs.basename(filePath);
console.log("文件名:", fileName); // 输出: example.txt
方法二:手动处理路径字符串
let filePath: string = "/data/storage/el2/base/files/example.txt";
// 使用 split 分割路径并取最后一部分
let pathArray: string[] = filePath.split('/');
let fileName: string = pathArray[pathArray.length - 1];
console.log("文件名:", fileName); // 输出: example.txt
// 或者使用 lastIndexOf 查找最后一个斜杠
let lastSlashIndex: number = filePath.lastIndexOf('/');
let fileName2: string = filePath.substring(lastSlashIndex + 1);
console.log("文件名:", fileName2); // 输出: example.txt
说明:
- 推荐使用方法一:
fs.basename()是官方提供的标准方法,能正确处理不同操作系统路径分隔符。 - 如果路径以目录结尾(如
/path/to/directory/),fs.basename()会返回空字符串,建议先确保路径指向文件。 - 方法二适用于简单场景,但需要注意路径分隔符的兼容性。
完整示例:
import fs from '@ohos.file.fs';
function getFileName(filePath: string): string {
try {
return fs.basename(filePath);
} catch (error) {
console.error("获取文件名失败:", error);
return "";
}
}
// 使用示例
let filePath = "/data/storage/el2/base/files/document.pdf";
let name = getFileName(filePath);
console.log("文件名:", name); // 输出: document.pdf
选择哪种方式取决于具体需求,推荐优先使用 fs.basename() 方法。

