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://'。太好了,非常感谢您的解释。我也不知道它是一种原始类型。希望我能很快赶上火车。谢谢你的耐心。谢谢你的回复。我想知道是否有另一种方法,一种不需要你给它你自己的文件名的方法。