我对 Dart 和 Flutter 相当陌生,并且在从源图像覆盖现有资产图像时遇到困难。
我的尝试:
try {
File localFile = File('assets/images/myImage.png');
localFile.writeAsBytesSync(originFile.readAsBytesSync());
catch (e) {
log(e.toString());
}
I get:
[log] FileSystemException: Cannot open file, path = 'assets/images/myImage.png' (OS Error: No such file or directory, errno = 2)
我确实在中定义了资产文件夹pubspec.yaml:
assets:
- assets/images/
好的,所以我在某处读到可以像这样访问资产文件:
import 'package:flutter/services.dart' show rootBundle;
final byteData = await rootBundle.load('assets/images/myImage.png');
但我不知道如何转换byteData to a File代表实际文件的对象。
我想我在这里遗漏了一些非常基本的东西。或者也许有一种与这种方法无关的正确方法来做到这一点?
请帮忙。
提前致谢!
如果您想在用户设备上写入文件,您应该查看此处:https://flutter.dev/docs/cookbook/persistence/reading-writing-files https://flutter.dev/docs/cookbook/persistence/reading-writing-files
共享首选项是手机中应用程序可以写入的空间,因此这正是您想要的!
资产是您应用程序的一部分,不应在应用程序内进行修改。
在构建过程中,Flutter 将资产放入一个名为的特殊存档中
应用程序在运行时读取的资源包。据flutter网站报道 https://flutter.dev/docs/development/ui/assets-and-images#asset-bundling
希望这可以帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)