flutter 推荐插件:path_provider
场景
面对每当用户启动你的应用时都得下载相同数据的情况,你不想增加数据库或者文档存储的复杂性,并且正从移动设备或者桌面端进行编程,可以尝试使用 path_provider
来访问设备的文件系统。
Directory appDocDir = await getApplicationDocumentsDirectore();
调用path_provider
提供的getApplicationDocumentsDirectore
方法,此方法返回一个目录对象,该对象会指向操作系统未您的应用分配于用户设备上的位置。
在这里,你可以为服务器加载成本高昂的原始Json或者是其它任何东西创建文件来存储大量二进制数据。
当你有不同的数据时,比如来自你的服务器的文件清单或其它支持文件,那么调用getApplicationSupportDirectory方法:
Directory appSupportDir = await getApplicationSupportDirectory();
而当你仅仅是需要一个临时文件夹来存储不需要超过当前会话的数据时,那么调用getTemporaryDirectoryd方法
Directory appDocDir = await getTemporaryDirectory();
在这些场景中,都有一个地方可以根据需要缓存任意格式的数据以确保应用程序尽可能地高效,但不要忘了删除旧的不再需要地文件,以避免让费用户地存储空间。
安装
flutter pub add path_provider
这将会在你项目的pubspec.yaml
文依赖中增加以下内容:
dependencies: path_provider: ^2.0.9
引入和使用
import 'package:path_provider/path_provider.dart'; Directory tempDir = await getTemporaryDirectory(); String tempPath = tempDir.path; Directory appDocDir = await getApplicationDocumentsDirectory(); String appDocPath = appDocDir.path;
更完整的例子见:https://pub.flutter-io.cn/packages/path_provider/example