Caching 在运行时向Flatter应用程序添加动态资源

Caching 在运行时向Flatter应用程序添加动态资源,caching,flutter,Caching,Flutter,我有一个Flitter应用程序,它需要加载动态资产和内容,我想保存这些资产和内容供以后使用。我知道我可以在应用程序内的文件夹“Assets/”中拥有构建时所需的资产 我想使用ZIP文件下载内容,并将其解压缩到应用程序本地文件夹,这样它们就不会在下一次应用程序更新中删除 Flatter允许我在运行时向哪些文件夹添加资产?您无法在运行时向Flatter应用程序动态添加资产,这就是为什么官方的Flatter开发团队开发了共享首选项包 如果要存储文件而不是信息位,请参考以下示例代码(图像文件): 如果

我有一个Flitter应用程序,它需要加载动态资产和内容,我想保存这些资产和内容供以后使用。我知道我可以在应用程序内的文件夹“Assets/”中拥有构建时所需的资产

我想使用ZIP文件下载内容,并将其解压缩到应用程序本地文件夹,这样它们就不会在下一次应用程序更新中删除


Flatter允许我在运行时向哪些文件夹添加资产?

您无法在运行时向Flatter应用程序动态添加资产,这就是为什么官方的Flatter开发团队开发了共享首选项包

如果要存储
文件
而不是信息位,请参考以下示例代码(图像文件):

如果您仍然希望以某种方式动态地添加/删除文件,那么答案是实际上是不可能的,因为资产不是为动态存储文件而设计的


您应该只使用资产来存储所有用户都可以使用的文件。

这适合您的问题吗?或者您有外部存储需求?我阅读了官方文档,但对存储和应用程序更新有一些小问题。我想缓存长期使用的资产,如果资产文件夹在没有安装应用程序更新的情况下也是可更新的,我想漫游一下。恐怕这是不可能的,资产是静态的,我想不出任何动态资产的用例。我认为你应该提供你的作品的场景以使其更有意义。顺便说一句,LocalStorage不会在下一次应用程序更新中删除,所以我不明白您为什么要关注“/assets”。我想你唯一想做的就是做一个应用程序克隆器?如果是这种情况,我对此一无所知:(我想要动态启动屏幕(A/B测试),因此资产不在应用程序中,将从CDN加载。
Future getImage(ImageSource imageSource) async {
// using your method of getting an image
final File image = await ImagePicker.pickImage(source: imageSource);

// getting a directory path for saving
final String path = await getApplicationDocumentsDirectory().path;

// copy the file to a new path
final File newImage = await image.copy('$path/image1.png');

setState(() {
  _image = newImage;
});}