我想将数据保存在用户从文件管理器转到所需路径时应该对用户可见的数据。
现在我有两个问题:
1- 像将图像保存在存储中(而不是缓存图像)的社交网络一样,我想将我的图像保存到所需的路径存储中,并且图像应该像cacheNetworkImage一样可访问。 那我该怎么办?
因为我加载了很多图像,所以缓存它们不是一个好的解决方案,因为它占用大量RAM。
2- 这种情况类似于上一个,但是我将一些带有某些ID的媒体下载到我的存储中。 但我只想读取ID,如果用户单击该文件,则执行它。 因此,如何访问该存储路径文件中现有文件的名称?
感谢社区。任何帮助表示赞赏。
答案 0 :(得分:1)
您可以在基本path_provider库和更高级的network_to_file_image库之间进行选择。
在第一个文件中,您可以列出文件并通过以下方式读取文件:
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"
);
}
},
))
第二个在链接上有详细记录。