Android File.createNewFile为false,但也存在false

Android File.createNewFile为false,但也存在false,android,file,io,Android,File,Io,非常奇怪的问题,我使用的是SimpleStorage,但我使用的是实际的IO,我使用的是Android 11,问题是: 在应用程序中创建新文件并将其写入下载文件夹等,没有问题 打开samsung filemanager,删除文件 重复步骤1:在相同路径/文件名上创建新文件 步骤1工作时没有问题(排除了访问/权限问题),但在步骤3,createNewFile返回false,如果我进行调试,我将得到这些经过计算的返回值 file.length = 0 file.isEmpty = false fil

非常奇怪的问题,我使用的是SimpleStorage,但我使用的是实际的IO,我使用的是Android 11,问题是:

  • 在应用程序中创建新文件并将其写入下载文件夹等,没有问题
  • 打开samsung filemanager,删除文件
  • 重复步骤1:在相同路径/文件名上创建新文件
  • 步骤1工作时没有问题(排除了访问/权限问题),但在步骤3,createNewFile返回false,如果我进行调试,我将得到这些经过计算的返回值

    file.length = 0
    file.isEmpty = false
    file.isFile = false
    file.createNewFile = false
    file.exists = false
    
    这似乎没有什么意义,文件的长度为0,但不是空的?它不存在,但无法创建


    还有文件名的问题,如果我重命名文件并重试,它会工作,如果我将另一个文件重命名为已删除文件的文件名,它会不工作。

    可以确认您找到的内容

    我用官方文件应用程序在Android 11 defices上删除了这个文件

    无法再次创建具有相同名称的文件

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

    大多数情况下,在Android 11设备上,如果文件存在(),但您无法使用file.list()读取或写入它,那么MediaStore仍然有一个文件条目。因此,您必须先使用媒体存储删除条目


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

    可以证实你找到了什么

    我用官方文件应用程序在Android 11 defices上删除了这个文件

    无法再次创建具有相同名称的文件

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

    大多数情况下,在Android 11设备上,如果文件存在(),但您无法使用file.list()读取或写入它,那么MediaStore仍然有一个文件条目。因此,您必须先使用媒体存储删除条目


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

    请告诉Android版本的旧设备。并编译DK版本。另外,请给出您正在谈论的文件的完整路径。A40 Android 11,compile 30,路径是Environment。getExternalStoragePublicDirectory(Environment.DIRECTORY\u下载)请告诉所用设备的Android版本。并编译DK版本。另外,请给出您正在谈论的文件的完整路径。A40 Android 11,compile 30,路径是Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY\u下载)这就是我所认为的,实际上,有一个“参考”“要从其他地方删除它,怎么能从MediaStore中删除它?嗯..它不在我告诉过你的MediaStore中..那么你在那里找到了条目吗?我必须在哪里查找?在MediaStore中。很抱歉。如果你在查询MediaStore时遇到问题,请发表新的帖子并提问。然后阅读标记为
    MediaStore
    的stackoverflow页面。”>在.Ok解决之前,File.list被用来解释重复的文件(和重命名)谢谢!这就是我的想法,实际上,有一个“引用”“要从其他地方删除它,怎么能从MediaStore中删除它?嗯..它不在我告诉过你的MediaStore中..那么你在那里找到了条目吗?我必须在哪里查找?在MediaStore中。很抱歉。如果你在查询MediaStore时遇到问题,请发表新的帖子并提问。然后阅读标记为
    MediaStore
    的stackoverflow页面。”>在.Ok解决之前,File.list用于解释重复文件(并重命名)谢谢!