获取文件夹大小?

如题:获取文件夹大小?

阅读 638
1 个回答

功能场景描述及使用场景

HarmonyOS暂时没有直接获取文件夹大小的接口,但是在windows系统获取文件夹大小的时候,对于一些文件很多的文件夹,它的大小不会一下打印出来,而是不断的累加变化,所以可以推断是用遍历的方式来获取文件夹大小的,HarmonyOS提供了listFileSync,可以直接获取文件夹下的所有文件,不需要我们再写递归遍历

使用的核心API

首先导入模块

import fs from '@ohos.file.fs';

核心代码解释

  getDirectorySize(path:string):Number{
    let size = 0
    class ListFileOption { //制定筛选规则
      public recursion: boolean = true; //true为获取该文件夹下所有文件,包括子目录文件
      public listNum: number = 0;  //获取文件的数量,为0时获取所有文件
    }
    let option = new ListFileOption()
    let filenames = fs.listFileSync(path,option)
 
    for(let i =0;i<filenames.length;i++){
      size += fs.statSync(path+filenames[i]).size
    }
    return size
  }

实现效果

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进