【问题标题】:Flutter: File can not be deleted or can not change path of the fileFlutter:文件无法删除或无法更改文件路径
【发布时间】:2023-02-02 14:05:24
【问题描述】:

我试图改变内部存储文件的路径,但它不可能发生。 然后我尝试将该文件复制到另一个位置并将其从第一个位置删除。不幸的是,这也没有用。

这是我的错误:

[错误:flutter/runtime/dart_vm_initializer.cc(41)] 未处理 异常:FileSystemException:无法删除文件,路径 = '/storage/emulated/0/DCIM/Screenshots/Screenshot_20230116-114448.jpg' (操作系统错误:没有这样的文件或目录,errno = 2)

如果有人有想法那么它可能会有所帮助。谢谢你。

【问题讨论】:

  • 这个命令的输出是什么:adb shell ls -l /storage/emulated/0/DCIM/Screenshots/Screenshot_20230116-114448.jpg
  • 显示“权限被拒绝”。任何启用权限的解决方案?
  • /storage/emulated/0/DCIM/Screenshots/storage/emulated/0/DCIM 等父文件夹呢?
  • 从“/storage/emulated/”我得到权限被拒绝的错误。
  • 你能从你的应用程序中列出这些文件夹吗? api.flutter.dev/flutter/dart-io/Directory/listSync.html

标签: android flutter file delete-file internal-storage


【解决方案1】:

在访问存储之前,请使用以下代码请求存储权限,您也可以检查此权限包https://pub.dev/packages/permission_handler。不要忘记在各自的文件夹中为 android 和 iOS 添加权限

await Permission.storage.request();

如果您还有其他疑问,可以在 cmets 中提问。

【讨论】:

  • 我已经请求了存储权限,并且成功获得了文件路径,但无法从存储中写入或删除。
  • 你有没有在这个应用程序标签 <application android:label="app name" android:name="${applicationName}" android:icon="@mipmap/ic_launcher" android:requestLegacyExternalStorage=" true" > 并为权限添加所有这三个:name="android.permission.READ_EXTERNAL_STORAGE"/>
  • 是的,我已经添加了。我可以访问所有存储的照片和视频,但不能删除。
  • 您如何删除它可以共享该代码 sn-p
【解决方案2】:

如果您使用的是 android 10 及更高版本,WRITE_EXTERNAL_STORAGE 在 android native 中被删除...我们只能删除应用程序在 DCIM 或任何公共目录中写入的文件,如果我们卸载应用程序并重新安装相同的应用程序,则它不会删除它... 可以查看这个stackoverflow的回答和评论

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-29
    • 1970-01-01
    • 1970-01-01
    • 2019-03-17
    • 1970-01-01
    • 1970-01-01
    • 2019-03-04
    • 2014-04-09
    相关资源
    最近更新 更多