Flutter 颤振图像库保护程序-如何访问路径

Flutter 颤振图像库保护程序-如何访问路径,flutter,dart,flutter-plugin,flutter-image,flutter-file,Flutter,Dart,Flutter Plugin,Flutter Image,Flutter File,我正在使用插件保存图像。方法 等待ImageGallerySaver.saveImage(PNGB) 返回一个对象 {filePath:file:///storage/emulated/0/wallpapers/1608205629471.jpg,errorMessage:null,isSuccess:true} 我想获取新保存文件的路径(/storage/emulated/0/wallpers/1608205629471.jpg) 有没有办法做到这一点?这是一个目标。访问文件路径字符串,如下所

我正在使用插件保存图像。方法

等待ImageGallerySaver.saveImage(PNGB)

返回一个对象

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

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

有没有办法做到这一点?

这是一个目标。访问文件路径
字符串
,如下所示:

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();
然后,如果需要使用正则表达式获取删除
文件的位置路径://

final imagePath=result['filePath'].toString().replaceAll(RegExp('file://'),'';

我认为这是一种不好的做法?你不应该通过某种方法访问它吗?另外,我是否应该删除'file://'部分,并获取字符串的其余部分?这是一种不错的做法。它是一个对象,因为一切都是Dart中的对象。它实际上是Dart中的一个基本类型(如int、double、bool等)。这就是访问其值的方式。是的,如果需要,只需使用substring删除'file://'。太好了,非常感谢您的解释。我也不知道它是一种原始类型。希望我能很快赶上火车。谢谢你的耐心。谢谢你的回复。我想知道是否有另一种方法,一种不需要你给它你自己的文件名的方法。