HarmonyOS 鸿蒙Next `listFileSync`通过`ListFileOptions`过滤之后列出了文件夹的问题

发布于 1周前 作者 phonegap100 来自 鸿蒙OS

HarmonyOS 鸿蒙Next listFileSync通过ListFileOptions过滤之后列出了文件夹的问题

上代码:

let path = '/data/storage/el2/base/files'

// 文件筛选选项
const listFileOption: ListFileOptions = {
    // 是否递归子目录下文件名
    recursion: false,
    filter: {
      suffix: ['.wav', '.m4a', '.aac', '.pcm', '.flac'],
      fileSizeOver: 1024,
    }
}

// 遍历这个
fs.listFileSync(path, listFileOption)

已经使用后缀名过滤了,结果中却包含了一个文件夹,各位大佬有什么头绪嘛?

这个文件夹是在这个路径下调用了系统分享api就自动生成的,筛选的解决办法已经有了。我是想知道这是什么原因导致的,是我对后缀名过滤有什么误解嘛…


更多关于HarmonyOS 鸿蒙Next `listFileSync`通过`ListFileOptions`过滤之后列出了文件夹的问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

试了下,suffix只对文件有效,对文件夹无效,文件夹确实也没有后缀一说

更多关于HarmonyOS 鸿蒙Next `listFileSync`通过`ListFileOptions`过滤之后列出了文件夹的问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


是的。我也找到问题所在了…之前一直关注Filter这个对象的属性说明,发现ListFileOptionsrecursion属性已经说明了:返回当前目录下满足过滤要求的文件名及文件夹名。哎服了😵,

针对HarmonyOS 鸿蒙Next系统中listFileSync通过ListFileOptions过滤后列出文件夹的问题,这里直接给出可能的解决方案:

在HarmonyOS的文件系统操作中,如果你使用listFileSync方法配合ListFileOptions来过滤文件,但结果中包含了不期望的文件夹,这通常是因为ListFileOptions的配置问题。

  1. 检查文件类型过滤: 确保在ListFileOptions中正确设置了文件类型过滤。例如,如果你只想列出文件而不想列出文件夹,可以使用ListFileOptions.setIncludeDirs(false)来排除文件夹。

  2. 前缀和后缀过滤: 如果使用了前缀或后缀过滤,请确保过滤条件正确无误。错误的过滤条件可能会导致意外的结果。

  3. 递归与非递归: 注意ListFileOptions的递归设置。如果你只想列出当前目录下的文件或文件夹,确保没有设置递归。

  4. 权限问题: 确认应用程序有足够的权限访问目标目录和文件。权限不足可能导致某些文件或文件夹被意外排除或包含。

如果上述方法仍然无法解决问题,可能是由于特定的系统行为或bug导致的。此时,建议直接联系HarmonyOS的开发者支持或查阅最新的官方文档。如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部