Flutter从资产文件夹读取所有文件

时间:2019-11-06 23:58:45

标签: android ios flutter dart cross-platform

我有一个资产文件夹,其中有一个tab文件夹,然后有一个文件夹列表,每个文件夹包含一些文件

enter image description here

现在,我想读取tabs文件夹中所有文件夹的名称以及tabs文件夹的每个子文件夹中所有文件的名称,即分别名为sound 1,Sound 2和Sound 3的文件夹。 ...

简而言之,我想读取我的资产文件夹中所有文件和文件夹名称。请任何人帮助。 谢谢,

3 个答案:

答案 0 :(得分:5)

即使您仅在pubspec.yaml中指定资产文件夹,Flutter编译器也会在AssetManifest.json文件中列出这些文件夹中的所有文件。我们要做的就是读取此文件:

final manifestJson = await DefaultAssetBundle.of(context).loadString('AssetManifest.json');
final images = json.decode(manifestJson).keys.where((String key) => key.startsWith('assets/images'));

答案 1 :(得分:0)

在pubspec.yaml文件中:

在资产下添加具有完整路径的文件:

  assets:
    - assets/tabs/sound1/sample1.mp3
    - assets/tabs/sound1/sample2.mp3

,依此类推,然后在您的项目中访问它们。

答案 2 :(得分:0)

最简单的方法是,打开pubspec.yaml,然后在资产行中,如下所示进行更改

assets:
    - assets/*

这会将所有文件夹和文件添加到资产文件夹中。