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

Flutter中如何将文件大小转换为MB、KB、GB等单位?

获取文件大小的优化实现

你的代码已经实现了基本的文件大小获取逻辑,但可以补充状态处理和格式优化,避免潜在问题并提升用户体验:

trailing: FutureBuilder<int>(
  builder: (context, snapshot) {
    // 处理加载中的状态
    if (snapshot.connectionState == ConnectionState.waiting) {
      return const Text("计算中...");
    }
    // 处理获取失败的情况
    if (snapshot.hasError) {
      return const Text("获取失败");
    }
    // 处理数据为空的边界情况
    final fileSize = snapshot.data ?? 0;
    // 将字节数格式化为易读的单位
    String formattedSize;
    if (fileSize < 1024) {
      formattedSize = "$fileSize B";
    } else if (fileSize < 1024 * 1024) {
      formattedSize = "${(fileSize / 1024).toStringAsFixed(2)} KB";
    } else {
      formattedSize = "${(fileSize / (1024 * 1024)).toStringAsFixed(2)} MB";
    }
    return Text(formattedSize);
  },
  future: files[index].length(),
),

优化点说明:

  • 增加加载状态提示,让用户知道正在计算文件大小
  • 捕获错误状态,避免因文件读取失败导致的界面异常
  • 处理snapshot.data为null的情况,防止空指针异常
  • 将原始字节数转换为用户更易理解的B/KB/MB单位

内容的提问来源于stack exchange,提问作者Faizan Abbas Bangash

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 18:55:17