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

kwvwclae  于 2023-04-22  发布在  iOS
关注(0)|答案(4)|浏览(229)

我有一个assets文件夹,其中有一个tab文件夹,然后是一个文件夹列表,每个文件夹都包含一些文件:

我想读取我的资产文件夹中所有文件和文件夹的名称。如何操作?

ogq8wdun

ogq8wdun1#

即使你在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'));
x6yk4ghg

x6yk4ghg2#

最简单的方法是,打开pubspec.yaml并在assets行中,按下面的方式更改它-只需添加整个文件夹。

assets:
  - assets/

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

rggaifut

rggaifut3#

我也有同样的问题,
截至2021年9月,仍然没有办法在调用之前在pubspec.yaml中手动列出所有资产

final manifestJson = await DefaultAssetBundle.of(context).loadString('AssetManifest.json');

如果您使用的是Android Studio/IntelliJ,您可以安装https://plugins.jetbrains.com/plugin/13629-flutter-assets-ref-generator
然后您可以使用它来列出您的所有资产文件到pubspec.yaml与一个点击按钮。
它为我解决了问题。

5n0oy7gb

5n0oy7gb4#

根据Flutter官方的说法,他们现在提供了在目录中插入所有文件的通用方法。

flutter:
  assets:
    - directory/
    - directory/sub_directory/

参考:https://docs.flutter.dev/development/ui/assets-and-images

相关问题