HarmonyOS 鸿蒙Next 怎么获取通过fileio.listfile获取的文件列表的文件后缀

HarmonyOS 鸿蒙Next 怎么获取通过fileio.listfile获取的文件列表的文件后缀 怎么获取通过fileio.listfile获取的文件列表的文件后缀?

创建了多个关系型数据库,想打开指定的关系型数据库,获取列表后,因为有临时文件-wal、-shm的字符,需要剔除包含临时文件字符的,想通过后缀去判断,但是获取到的文件名没有后缀,该怎么弄

3 回复

可以通过listFile列出文件夹下所有文件名,支持递归列出所有文件名(包含子目录下),支持文件过滤。

参考链接: https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/js-apis-file-fs-V13#fslistfile

在使用fs.listFiles时使用文件过滤选项optionsListFileOptions

可以使用displayName剔除含有-wal、-shm的文件名。

displayName Array<string> 文件名模糊匹配,各个关键词OR关系。当前仅支持通配符
示例
import { BusinessError } from '@kit.BasicServicesKit';
import { fileIo as fs, Filter, ListFileOptions } from '@kit.CoreFileKit';

let listFileOption: ListFileOptions = {
  recursion: false,
  listNum: 0,
  filter: {
    suffix: [".png", ".jpg", ".jpeg"],
    displayName: ["*abc", "efg*"],
    fileSizeOver: 1024
  }
}
fs.listFile(pathDir, listFileOption).then((filenames: Array<string>) => {
  console.info("listFile succeed");
  for (let i = 0; i < filenames.length; i++) {
    console.info("fileName: %s", filenames[i]);
  }
}).catch((err: BusinessError) => {
  console.error("list file failed with error message: " + err.message + ", error code: " + err.code);
});

更多关于HarmonyOS 鸿蒙Next 怎么获取通过fileio.listfile获取的文件列表的文件后缀的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这个试过了,对于数据库文件不适用,过滤后,文件列表数量为0,

在HarmonyOS(鸿蒙)系统中,如果你使用fileio.listfile方法获取了文件列表,并希望提取这些文件的后缀名,可以通过字符串处理来实现。以下是一个基本的方法,用于从文件名中提取后缀名:

  1. 获取文件列表:首先,通过fileio.listfile方法获取指定目录下的文件列表。

  2. 提取文件后缀:遍历文件列表,对每个文件名进行字符串处理,找到最后一个.的位置,从该位置到字符串末尾的部分即为文件后缀。

示例代码(伪代码,具体实现需根据鸿蒙系统的API进行调整):

# 假设file_list是通过fileio.listfile获取的文件列表
file_list = ["example.txt", "image.png", "document.pdf"]

# 遍历文件列表并提取后缀
for file in file_list:
    # 找到最后一个'.'的位置
    dot_index = file.rfind('.')
    # 如果找到'.',则提取后缀,否则文件无后缀
    if dot_index != -1:
        file_extension = file[dot_index+1:]
        print(f"文件: {file}, 后缀: {file_extension}")
    else:
        print(f"文件: {file}, 无后缀")

上述代码遍历文件列表,对每个文件名找到最后一个.的位置,然后提取该位置之后的部分作为文件后缀。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部