Flutter 如何将数据保存到永久存储器并检索它?
我想将数据保存在设备上,当用户从文件管理器转到所需路径时,应该可以看到该设备上的数据 现在我有两个问题: 一,- 与将图像保存在存储中(而不是缓存图像)的社交网络一样,我希望将图像保存到所需的路径存储中,并且图像应该可以像cacheNetworkImage一样访问。 那我该怎么办 因为我加载了很多图像,缓存它们不是一个好的解决方案,因为它占用了大量的RAM 二,- 此场景与前一个场景类似,但我使用一些ID将一些媒体下载到我的存储中。 但我想要一个只读ID,如果用户点击该文件,就执行它。 那个么,如何访问存储路径文件中现有文件的名称呢Flutter 如何将数据保存到永久存储器并检索它?,flutter,dart,Flutter,Dart,我想将数据保存在设备上,当用户从文件管理器转到所需路径时,应该可以看到该设备上的数据 现在我有两个问题: 一,- 与将图像保存在存储中(而不是缓存图像)的社交网络一样,我希望将图像保存到所需的路径存储中,并且图像应该可以像cacheNetworkImage一样访问。 那我该怎么办 因为我加载了很多图像,缓存它们不是一个好的解决方案,因为它占用了大量的RAM 二,- 此场景与前一个场景类似,但我使用一些ID将一些媒体下载到我的存储中。 但我想要一个只读ID,如果用户点击该文件,就执行它。 那个么,
感谢社区。非常感谢您的帮助。您可以在基本库和更高级库之间进行选择 在第一个选项中,您可以列出文件并通过以下方式读取:
void checkDirs() async{
Directory tempDir = await getApplicationDocumentsDirectory();
List<FileSystemEntity> directory = tempDir.listSync();
directory.forEach((x) => debugPrint(x.path));
}
Future<File> readImage(String path) async{
return File(path);
}
Container(child: FutureBuilder<File>(
future: readImage("some_path"),
builder: (BuildContext context,
AsyncSnapshot<File> snapshot) {
if (snapshot.connectionState ==
ConnectionState.done &&
snapshot.data != null) {
return Image.file(
snapshot.data,
);
} else if (snapshot.error != null) {
return const Text(
'Error Picking Image',
textAlign: TextAlign.center,
);
} else {
return const Text(
"No photo"
);
}
},
))
void checkDirs()异步{
目录tempDir=等待getApplicationDocumentsDirectory();
List directory=tempDir.listSync();
forEach((x)=>debugPrint(x.path));
}
未来读取映像(字符串路径)异步{
返回文件(路径);
}
并以这种方式呈现:
void checkDirs() async{
Directory tempDir = await getApplicationDocumentsDirectory();
List<FileSystemEntity> directory = tempDir.listSync();
directory.forEach((x) => debugPrint(x.path));
}
Future<File> readImage(String path) async{
return File(path);
}
Container(child: FutureBuilder<File>(
future: readImage("some_path"),
builder: (BuildContext context,
AsyncSnapshot<File> snapshot) {
if (snapshot.connectionState ==
ConnectionState.done &&
snapshot.data != null) {
return Image.file(
snapshot.data,
);
} else if (snapshot.error != null) {
return const Text(
'Error Picking Image',
textAlign: TextAlign.center,
);
} else {
return const Text(
"No photo"
);
}
},
))
容器(子项:FutureBuilder(
未来:readImage(“某些路径”),
生成器:(BuildContext上下文,
异步快照(快照){
如果(snapshot.connectionState==
连接状态。完成&&
snapshot.data!=null){
返回Image.file(
快照数据,
);
}else if(snapshot.error!=null){
返回常量文本(
“拾取图像时出错”,
textAlign:textAlign.center,
);
}否则{
返回常量文本(
“没有照片”
);
}
},
))
第二个在链接上有很好的记录。将大量数据保存到移动存储不是一个好的做法,muy建议使用API或使用Azure或AWS等云服务来存储数据,然后在移动应用程序上加载所需的数据