我有一个assets文件夹,其中有一个tab文件夹,然后是一个文件夹列表,每个文件夹都包含一些文件:
我想读取我的资产文件夹中所有文件和文件夹的名称。如何操作?
ogq8wdun1#
即使你在pubspec.yaml中只指定了资源文件夹,flutter编译器也会在AssetManifest.json文件中列出这些文件夹中的所有文件。我们所要做的就是读取这个文件:
pubspec.yaml
AssetManifest.json
final manifestJson = await DefaultAssetBundle.of(context).loadString('AssetManifest.json'); final images = json.decode(manifestJson).keys.where((String key) => key.startsWith('assets/images'));
x6yk4ghg2#
最简单的方法是,打开pubspec.yaml并在assets行中,按下面的方式更改它-只需添加整个文件夹。
assets: - assets/
这将添加资产文件夹中的所有文件夹和文件。
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与一个点击按钮。它为我解决了问题。
5n0oy7gb4#
根据Flutter官方的说法,他们现在提供了在目录中插入所有文件的通用方法。
flutter: assets: - directory/ - directory/sub_directory/
参考:https://docs.flutter.dev/development/ui/assets-and-images
4条答案
按热度按时间ogq8wdun1#
即使你在
pubspec.yaml
中只指定了资源文件夹,flutter编译器也会在AssetManifest.json
文件中列出这些文件夹中的所有文件。我们所要做的就是读取这个文件:x6yk4ghg2#
最简单的方法是,打开pubspec.yaml并在assets行中,按下面的方式更改它-只需添加整个文件夹。
这将添加资产文件夹中的所有文件夹和文件。
rggaifut3#
我也有同样的问题,
截至2021年9月,仍然没有办法在调用之前在
pubspec.yaml
中手动列出所有资产如果您使用的是Android Studio/IntelliJ,您可以安装https://plugins.jetbrains.com/plugin/13629-flutter-assets-ref-generator
然后您可以使用它来列出您的所有资产文件到
pubspec.yaml
与一个点击按钮。它为我解决了问题。
5n0oy7gb4#
根据Flutter官方的说法,他们现在提供了在目录中插入所有文件的通用方法。
参考:https://docs.flutter.dev/development/ui/assets-and-images