Flutter Image gallery saver - 如何访问路径

Flutter Image gallery saver - how to access path

我正在使用 Image gallery saver 插件来保存图像。方法

await ImageGallerySaver.saveImage(pngBytes)

returns一个对象

{filePath: file:///storage/emulated/0/wallpapers/1608205629471.jpg, errorMessage: null, isSuccess: true}

我想获取新保存文件的路径(/storage/emulated/0/wallpapers/1608205629471.jpg)。

有办法实现吗?

那是一个Map对象。像这样访问文件路径 String

var response = await ImageGallerySaver.saveImage(pngBytes);

// value = json['key']
var path = response['filePath']; // 'file:///storage/emulated/0/wallpapers/1608205629471.jpg'

首先,您需要与要检索的数据库中的图像 ID 相同。

然后用这个方法传递 id 我给出了一个我用过的片段:

import 'package:path/path.dart' as p;
Directory _appDocsDir;
        class ImageCashUtil {
      ImageCashUtil() {
        init();
      }
      init() async {
        WidgetsFlutterBinding.ensureInitialized();
        _appDocsDir = await getApplicationDocumentsDirectory();
        return _appDocsDir;
      }
    
      File fileFromDocsDir(String filename) {
        String pathName = p.join(_appDocsDir.path, filename);
        return File(pathName);
      }
    }

您可以从这样的地图访问密钥

final imagePath = result['filePath'].toString();

然后,如果您需要使用正则表达式

删除 file:// 的位置路径
final imagePath = result['filePath'].toString().replaceAll(RegExp('file://'), '');

read documentation for more info