You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Flutter获取应用支持目录的大小?

获取Flutter应用目录大小的实现方法

要计算指定目录的总容量,需要递归遍历目录下的所有文件(包括子目录中的文件),累加每个文件的字节大小。以下是具体实现:

1. 实现目录大小计算函数

导入必要的包后,编写递归计算目录大小的函数:

import 'dart:io';
import 'package:path/path.dart' as path;

Future<int> calculateDirectorySize(String directoryPath) async {
  int totalSize = 0;
  final directory = Directory(directoryPath);
  
  // 目录不存在时返回0
  if (!await directory.exists()) {
    return 0;
  }

  // 递归遍历目录下所有实体
  final entities = directory.list(recursive: true);
  
  await for (final entity in entities) {
    // 仅计算文件大小
    if (entity is File) {
      totalSize += await entity.length();
    }
  }
  
  return totalSize;
}

2. 结合你的代码调用函数

将你获取的应用支持目录路径传入函数,即可得到总大小,还可以转换为更易读的单位:

final String directoryPath = (await getApplicationSupportDirectory()).path;
int totalBytes = await calculateDirectorySize(directoryPath);

// 转换为KB/MB单位
double sizeInKB = totalBytes / 1024;
double sizeInMB = sizeInKB / 1024;

print('目录总大小:${sizeInMB.toStringAsFixed(2)} MB');

注意事项

  • 函数会自动处理子目录,遍历所有层级的文件
  • 若目标目录不存在,会直接返回0
  • 可以根据需求调整单位转换逻辑,比如转为GB等

内容的提问来源于stack exchange,提问作者ASMA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 17:32:01