【问题标题】:Flutter: Custom name for screenshot imageFlutter:截图图像的自定义名称
【发布时间】:2020-05-29 06:43:32
【问题描述】:

我正在按照以下 Flutter 包对我的一个应用页面进行截图:

https://pub.dev/packages/screenshot

我已经成功实现了这个例子,我可以在图库中看到我的截图。

我的问题是,当这些图像存储在画廊中时,我希望能够使用某种编号系统对其进行命名。例如INV_0001,INV_0002。

有没有办法在代码中做到这一点?我有以下代码成功截取屏幕截图,但没有重命名文件。

代码

_imageGallerySaver() async {
    final directory = (await getApplicationDocumentsDirectory()).path; //from path_provide package
    String fileName = "Bob";
    String pathName = '$directory/$fileName.png';

    //print(path);
    screenshotController
        .capture(
      path: pathName,
    ).then((File image) async {
      print("image: $image");
      setState(() {
        _imageFile = image;
      });
      print(pathName);
      final result =
      await ImageGallerySaver.saveImage(image.readAsBytesSync());
      print("File Saved to Gallery. result: $result");
      //print("path: $path");
    }).catchError((onError) {
      print(onError);
    });
  }

片段

print("File Saved to Gallery. result: $result");

产生以下输出:

File Saved to Gallery. result: file:///storage/emulated/0/app_name/1581602261670.png

如果可能,我想重命名“1581602261670”部分。谢谢

【问题讨论】:

  • 我应该把它放在我的代码中的什么地方,好吗?它似乎没有做任何事情。
  • 其实那个文件名是自己传的,随便改吧
  • @Darish 我无法让它与重命名或使用路径名一起工作。它总是以随机“number.png”的形式出现。你能告诉我你会如何在我的代码上做到这一点吗?

标签: flutter dart


【解决方案1】:

在您的代码中,您传递该文件名来构造路径,那么为什么不自己更改名称。

无论如何,您可以使用重命名现有文件

await file.rename (newPath ):

【讨论】:

  • 我喜欢有一种名为“重命名”的方法,但它似乎对我在图库中的图像名称没有任何作用。我将把它放在我当前的代码中的什么位置?
  • 使用该包给定的路径检查您的文件是否存在,如果是,您可以使用重命名函数对其进行重命名。
  • “在你的代码中,你传递了那个文件名来构造路径,那么为什么不自己改变名字呢。”如果您仔细观察,我正在那里更改名称。我在上面添加了“Bob”这个词作为测试,但它不起作用。这种重命名方法似乎也不是。我感觉它与“ImageGallerySaver.saveImage”部分有关。我所有的文件都用一些随机数命名.png
  • 然后在他们的 git repo 上打开问题以便他们修复它
【解决方案2】:

无法使用此方法重命名文件。需要使用一个名为 Gallery Saver 的包: https://pub.dev/packages/gallery_saver

此软件包允许您设置自己的文件名并保存到图库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-27
    • 1970-01-01
    • 2013-08-07
    • 1970-01-01
    • 2018-06-18
    • 2012-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多