Android File.createNewFile false 但也存在 false

Android File.createNewFile false but exists also false

真的很奇怪的问题,我正在使用 SimpleStorage,但我已经使用了实际的 IO,我正在使用 Android 11 问题如下:

  1. 在应用程序中创建新文件并将其写入下载文件夹等,没问题
  2. 打开三星文件管理器,删除文件
  3. 重复第 1 步:在同一 path/filename
  4. 上创建新文件

步骤 1 没有问题(排除 access/permission 问题),但在步骤 3 createNewFile returns false 如果我调试,我得到这些评估的 return 值

file.length = 0
file.isEmpty = false
file.isFile = false
file.createNewFile = false
file.exists = false

这似乎没有多大意义,文件长度为0但不是空的?它不存在但无法创建?

另外,它真的与文件名有关,如果我重命名该文件并重试它有效,如果我将另一个文件重命名为已删除文件的文件名它不起作用。

可以确认你找到了什么。

我使用官方文件应用删除了 Android 11 台设备上的文件。

无法再次创建同名文件。

直到我获得了该应用程序的所有文件访问权限。然后我可以重新创建文件。

主要在 Android 11 设备上,如果文件存在 () 但您不能 File.list() 它并且不读取或写入它,那么 MediaStore 仍然有该文件的条目。所以你必须先使用媒体商店删除条目。

但是今天在媒体商店找不到测试文件,所以我也很困惑。