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

Flutter 3.10点击按钮获取目录文件数量时报路径不存在错误

问题解决方案

核心原因

独立Dart代码运行在本地文件系统,assets/books/jude/对应项目根目录下的真实路径,所以Directory能正常访问。但Flutter应用打包后,assets是嵌入到应用包内的资源,并非设备文件系统中的实体目录,直接用Directory访问该路径必然提示不存在。

解决方法

改用Flutter的AssetBundle读取资源清单,筛选目标目录下的文件数量,代码示例:

import 'dart:convert';
import 'package:flutter/services.dart';

Future<int> getNumberOfFiles() async {
  // 加载资源清单文件
  final manifestString = await rootBundle.loadString('AssetManifest.json');
  final manifestMap = json.decode(manifestString) as Map<String, dynamic>;

  // 筛选出目标目录下的所有资源路径(排除目录本身)
  final targetFiles = manifestMap.keys.where((path) {
    return path.startsWith('assets/books/jude/') && !path.endsWith('/');
  });

  final fileCount = targetFiles.length;
  print('Number of files: $fileCount');
  return fileCount;
}

注意事项

  • 确保pubspec.yaml中正确配置assets目录,路径需以/结尾以包含目录内所有文件:
    flutter:
      assets:
        - assets/books/jude/
    
  • 若目录下存在子目录,可根据需求调整startsWith的匹配规则,或进一步拆分路径结构做更精准筛选。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 13:42:42