【问题标题】:File.delete() is failingFile.delete() 失败
【发布时间】:2021-02-26 16:36:06
【问题描述】:

我正在尝试使用 .delete() 方法删除一些文件,但该方法似乎不起作用。

示例文件目录:“/storage/emulated/0/Pictures/something/68419.jpg”

我的代码:

File deletefile = new File(path); //The path is in the format I said
boolean didIt = deletefile.delete()
//didIt is false

我正在使用读写外部存储权限。 该代码已在 Android 10 上测试。

另外,这个人的代码和我一样,但显然是他们的工作。 Android File.delete not working

【问题讨论】:

  • 很可能是路径错误或者你的程序没有删除文件的权限。
  • 您需要先检查该文件是否存在于该位置。假设您已添加权限。
  • @khelwood 路径是我给出的示例格式,所以它应该可以工作。程序有删除文件的权限
  • 或者文件在其他地方打开? (?!在下一条评论之后,“首先向用户显示”)
  • @KidusTekeste 我确实在首先向用户展示照片时检查了它。因此,如果文件不存在,则不会触发代码。

标签: java android file


【解决方案1】:

要分析文件无法删除的原因,您应该改用Files.delete 方法。它将抛出一个 IOException 并显示无法删除文件的消息。如果你使用File,你可以简单地使用deletefile.toPath()进行转换;

【讨论】:

  • 原来是因为我的程序仍在使用该文件,即使在获取数据并显示它之后,就像@user15244370 建议的那样。谢谢。
【解决方案2】:

先检查文件是否存在。

File deletefile = new File(path); //The path is in the format I said
boolean didIt = deletefile.delete()
//didIt is false
if (deletefile.exists()) {
    // you can delete
}

【讨论】:

  • 感谢您的回答。我确实检查了它,因为我首先向用户展示了照片。因此,如果文件不存在,则无法触发代码。
  • stackoverflow.com/a/24659789/6021740 请检查此答案。获取真实路径有多种形式。
  • 我检查了你所说的,它表明文件存在但无法删除。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-20
  • 1970-01-01
  • 1970-01-01
  • 2016-04-06
  • 1970-01-01
  • 2012-12-21
相关资源
最近更新 更多