【问题标题】:FileSystemException: Cannot open file, path = 'storage/emulated/0/DCIM/docs/myPdf.pdf' (OS Error: Operation not permitted, errno = 1)FileSystemException:无法打开文件,路径 = 'storage/emulated/0/DCIM/docs/myPdf.pdf'(操作系统错误:不允许操作,errno = 1)
【发布时间】:2021-11-01 05:28:37
【问题描述】:

我正在尝试创建一个 pdf 文档并将我的数据写入该文件中。数据是 int 或 uint 类型的列表。能够对图像执行相同操作,但不能对 pdf 或 doc 文件执行相同操作。已授予所有权限,并且适用于图像。我的代码在下面-

Future <File> createDocFile(Uint8List fileData, String type) async
{
  File file = new File(".pdf");
  if(await PermissionHandler.checkPermission(Permission.storage)!=true){
    Url.toastShow("Storage permission not found.");
    await Permission.storage.request();
  }
  else {
    await file.writeAsBytes(fileData);
    print("PDF SAVED IN DEVICE");
    Url.toastShow("PDF saved in device",Colors.green);
  }    
}

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    每当您创建新文件时,设备都无法自动找到它。您必须手动告诉设备刷新文件。在您必须刷新设备中的所有文件以进行更新之前,这是非常低效的,但现在您可以只发送您想要更新的文件的路径。您可以使用media_scanner 插件来执行此操作。

    或者如果你想用 kotlin 自己做,那么这里是代码,

    private fun broadcastFileUpdate(path: String){
        context.sendBroadcast(Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,Uri.fromFile(File(path))))
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-16
      • 2020-12-08
      • 2021-07-09
      • 2022-07-17
      • 2023-02-07
      • 2022-10-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多