【问题标题】:How can I overwrite an assets image in Flutter having a source image?如何在 Flutter 中覆盖具有源图像的资产图像?
【发布时间】:2020-10-11 07:37:06
【问题描述】:

我是 Dart 和 Flutter 的新手,我无法从源图像覆盖现有资产图像。

我的尝试:

try {
 File localFile = File('assets/images/myImage.png');
 localFile.writeAsBytesSync(originFile.readAsBytesSync());
catch (e) {
 log(e.toString());
}

我明白了:

[log] FileSystemException: Cannot open file, path = 'assets/images/myImage.png' (OS Error: No such file or directory, errno = 2)

我确实在 pubspec.yaml 中定义了 assets 文件夹:

 assets:
    - assets/images/

好的,所以我在某处读到可以像这样访问资产文件:

import 'package:flutter/services.dart' show rootBundle;
final byteData = await rootBundle.load('assets/images/myImage.png');

但我不知道如何将 byteData 转换为代表实际文件的 File 对象。

我想我在这里遗漏了一些非常基本的东西。或者也许有一种与这种方法无关的正确方法来做到这一点?

请帮忙。

提前致谢!

【问题讨论】:

    标签: file flutter dart assets overwrite


    【解决方案1】:

    如果你想在用户设备上写入文件,你应该看这里:https://flutter.dev/docs/cookbook/persistence/reading-writing-files

    共享首选项是手机中的一个空间,您可以在其中编写应用程序,因此这正是您想要的!

    资产是您应用的一部分,不能在应用内修改。

    在构建期间,Flutter 将资产放入一个名为 应用程序在运行时读取的资产包。 According to the flutter website

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-01
      • 2021-08-13
      • 2021-10-26
      • 2019-09-06
      • 1970-01-01
      • 1970-01-01
      • 2021-03-30
      相关资源
      最近更新 更多