鸿蒙OS开发案例:【API9】遍历沙漏文件夹并输入文件的大小

1.获取打印文件大小

  /**
   * 获取打印文件大小
   */
  static getFileSize(byteNum: number) {
    if (byteNum < 0) {
      return "shouldn't be less than zero!";
    } else if (byteNum < 1024) {
      return `${byteNum.toFixed(3)}B`;
    } else if (byteNum < 1048576) {
      return (byteNum / 1024).toFixed(3) + "KB";
    } else if (byteNum < 1073741824) {
      return (byteNum / 1048576).toFixed(3) + "MB";
    } else {
      return (byteNum / 1073741824).toFixed(3) + "GB";
    }
  }

2.遍历文件名称

/**
   * 遍历文件名称
   */
  static async itFileName(pathDir: string) {
    let info = new StringBuilder();
    info.append('当前目录:').append(pathDir).append('\n');
    // 查看文件列表
    let options = {
      recursion: false,
      listNum: 0,
      filter: {
        // suffix: ['.png', '.jpg', '.txt'], // 匹配文件后缀名为'.png','.jpg','.txt'
        // displayName: ['test*'], // 匹配文件全名以'test'开头
        fileSizeOver: 0, // 匹配文件大小大于等于0
        lastModifiedAfter: new Date(0).getTime() // 匹配文件最近修改时间在1970年1月1日之后
      }
    }
    let files = fs.listFileSync(pathDir, options);
    for (let i = 0; i < files.length; i++) {
      const fileName = files[i]
      const filePath = pathDir + "/" + fileName;
      let stat = await fs.stat(filePath);
      info.append(fileName).append('-').append(this.getFileSize(stat.size)).append('\n')
    }
    LogUtils.i(info.toString());
  }

image

3.调用方法

await FileUtils.itFileName(AppUtils.getApp().filesDir)

4.控制台输出

image

posted @ 2024-05-14 22:19  烧脑猴  阅读(3)  评论(0编辑  收藏  举报
鸿蒙NEXT文档资料 mau123789是助理v直接可拿取